===== An interactive perl shell ===== #!perl use strict; no strict 'vars'; no strict 'refs'; use warnings; use Data::Dumper; $Data::Dumper::Indent--; $| = 1; # an alias for exit() sub quit { exit; } my ($ver,$maj,$min) = ($] =~ /(\d+)\.(\d{3})(\d{3})/); $maj += 0; $min += 0; print +(split '/', $^X)[-1], " $ver.$maj.$min\n"; $, = ','; $THE_PROMPT = '% '; print $THE_PROMPT; while (<>) { print eval; print +($@ || "\n") . $THE_PROMPT }; usage: $ alias perlsh='perl ~/bin/perlsh.pl' $ perlsh perl.exe 5.10.0 % @l=qw(the quick brown fox jumps over the lazy dog) the,quick,brown,fox,jumps,over,the,lazy,dog % @sorted_by_length = map {$_->[0]} sort {$a->[1] <=> $b->[1]} map {[$_, length]} @l the,fox,the,dog,over,lazy,quick,brown,jumps ===== Optimizing Perl ===== First run the script with profiling enabled: perl -d:DProf myscript.pl then run the profile-dumper: dprofpp tmon.out ===== Copy (duplicate) a two-dimensional array in Perl ===== @target = map [map $_ = $_, @{$_}], @source; ===== CPAN modules fail to compile ===== Then you're probably on a RedHat >= v9 system. Do this: export LANG=C and retry. ===== Get a Perl-module from CPAN ===== The easy way which also automatically fetches all modules needed by the module: perl -MCPAN -e 'install modulename' e.g.: perl -MCPAN -e 'install WWW::Search'