Category Archives: Perl MAMP

Perl 5 cheat sheet

This ‘cheat sheet’ is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 195 features may already be overwhelming.

Perl 5 cheat sheet v8

 CONTEXTS  SIGILS             ARRAYS        HASHES
 void      $scalar   whole:   @array        %hash
 scalar    @array    slice:   @array[0, 2]  @hash{'a', 'b'}
 list      %hash     element: $array[0]     $hash{'a'}
           &sub
           *glob    SCALAR VALUES
                    number, string, reference, glob, undef
 REFERENCES
 \     references      $$foo[1]       aka $foo->[1]
 $@%&* dereference     $$foo{bar}     aka $foo->{bar}
 []    anon. arrayref  ${$$foo[1]}[2] aka $foo->[1]->[2]
 {}    anon. hashref   ${$$foo[1]}[2] aka $foo->[1][2]
 \()   list of refs
                         NUMBERS vs STRINGS  LINKS
 OPERATOR PRECEDENCE     =          =        perl.plover.com
 ->                      +          .        search.cpan.org
 ++ --                   == !=      eq ne         cpan.org
 **                      < > <= >=  lt gt le ge   pm.org
 ! ~ \ u+ u-             <=>        cmp           tpj.com
 =~ !~                                            perldoc.com
 * / % x                 SYNTAX
 + - .                   for    (LIST) { }, for (a;b;c) { }
 << >>                   while  ( ) { }, until ( ) { }
 named uops              if     ( ) { } elsif ( ) { } else { }
 < > <= >= lt gt le ge   unless ( ) { } elsif ( ) { } else { }
 == != <=> eq ne cmp     for equals foreach (ALWAYS)
 &

 | ^              REGEX METACHARS            REGEX MODIFIERS
 &&               ^     string begin         /i case insens.
 ||               $     str. end (before \n) /m line based ^$
 .. ...           +     one or more          /s . includes \n
 ?:               *     zero or more         /x ign. wh.space
 = += -= *= etc.  ?     zero or one          /g global
 , =>             {3,7} repeat in range
 list ops         ()    capture          REGEX CHARCLASSES
 not              (?:)  no capture       .  == [^\n]
 and              []    character class  \s == [\x20\f\t\r\n]
 or xor           |     alternation      \w == [A-Za-z0-9_]
                  \b    word boundary    \d == [0-9] 
                  \z    string end       \S, \W and \D negate
 DO
 use strict;        DON'T            LINKS
 use warnings;      "$foo"           perl.com       
 my $var;           $$variable_name  perlmonks.org  
 open() or die $!;  `$userinput`     use.perl.org   
 use Modules;       /$userinput/     perl.apache.org
                                     parrotcode.org 
 FUNCTION RETURN LISTS
 stat      localtime    caller         SPECIAL VARIABLES
  0 dev    0 second     0 package      $_    default variable
  1 ino    1 minute     1 filename     $0    program name
  2 mode   2 hour       2 line         $/    input separator
  3 nlink  3 day        3 subroutine   $\    output separator
  4 uid    4 month-1    4 hasargs      $|    autoflush
  5 gid    5 year-1900  5 wantarray    $!    sys/libcall error
  6 rdev   6 weekday    6 evaltext     $@    eval error
  7 size   7 yearday    7 is_require   $$    process ID
  8 atime  8 is_dst     8 hints        $.    line number
  9 mtime               9 bitmask      @ARGV command line args
 10 ctime  just use                    @INC  include paths
 11 blksz  POSIX::      3..9 only      @_    subroutine args
 12 blcks  strftime!    with EXPR      %ENV  environment
Share

How to run perl in MAMP?

If everything is configured properly, put a perl file in your cgi-bin folder, set permissions so that apache can execute it, and you are all set ready to go.

Basically, Perl suffers in this aspect just because it was first and that is the way CGIs were done. PHP came along and the default setting allowed PHP scripts to run from any directory. So this is a little trouble for php programmers.

It took one hour for me to figure out how to run perl in MAMP.

Well here are some easy steps for you.

The permissions for all of those files needs to be 755.


Go to a  Application >> Utility >> and open Terminal.

    cd /Applications/MAMP
    chmod 755 cgi-bin
    cd cgi-bin
    find . -type f -exec chmod 755 \{\} \;

   Put all perl files in cgi-bin folder. 

  /Applications/MAMP/cgi-bin

Run your script 

http://localhost/cgi-bin/test.pl

You are done!

Share