#!/usr/bin/perl use warnings; use strict 'refs'; use Data::Dumper; my(@array1) = (1, 2, 3, 4); my(@array2) = ('a', 'b', 'c', 'd', 'e', 'f'); #### push my @array3, @array1, @array2; #### Parentheses missing around "my" list at try.pl line 12. #### push (my @array3, @array1, @array2); #### push (my @array3, @array1, @array2); #### push my @array3, @array1, @array2; #### #!/usr/bin/perl use warnings; use strict; use DBI; my $db_host = "mysql"; my $db_port = "3306"; my $db_user = 'web-user'; my $db_pass = 'pass4monks'; my $db_name = 'order_dev'; my $dbh = DBI->connect( "DBI:mysql:database=$db_name;host=$db_host;port=$db_port", $db_user, $db_pass ) || die ("ERROR: Unable to connect to '$db_name': $DBI::errstr" ); my ($enum_qry) = $dbh->prepare( "SELECT column_type FROM information_schema.columns WHERE table_name = 'orders' AND column_name = 'request_status' LIMIT 1;" ); $enum_qry->execute; my $enum_ref = $enum_qry->fetchrow_hashref; (my $enum_types = $$enum_ref{'column_type'}) =~ s/^enum\((.*)\).*/$1/; foreach my $enum_type ( eval $enum_types ) { print qq[\n]; } #### my $enum_types = "'On Order','Waiting, Pending Payment','Dispatched','Cancelled','Renewal','Amend\'ed'"; # NB: one value has a , in it and another a ' just to make this challenging... ;-) foreach my $enum_type ( eval $enum_types ) { print qq[\n]; } #### while ( $enum_types =~ m/('(.*?)'|([^']*?))($|,\s*)/g ) { my $match = $3 || $2; print qq[\n] if $match; } #### #!/usr/bin/perl use warnings; use strict; my $enum_types = "'On Order','Waiting, Pending Payment','Dispatched','Cancelled','Renewal','Amen'ded'"; foreach my $enum_type ( split /(?:^'|','|'$)/, $enum_types ) { print qq[\n]; } #### $ ./try.pl #### my $command = '/usr/local/bin/program_with_multiline_output'; chomp(my(@output) = `$command`); my $output = join($/, grep(/./, @output)); my $returned = $? >> 8; print "Returned: [$returned]\n"; print "Message: [$output]\n"; #### and all is quiet...