in reply to Why this simple code doesn't work?

See perlop on m?...? (as opposed to m/.../).

Replies are listed 'Best First'.
Re^2: Why this simple code doesn't work?
by uksza (Canon) on Mar 02, 2012 at 10:33 UTC
    Och
    If "?" is the delimiter, then a match-only-once rule applies
    thank you!
      #!/usr/bin/perl -w use strict; use 5.10.0; while (<DATA>) { chomp; process_path($_); } sub process_path { my $path = shift; if ( $path =~ m{^.*/home/(.*)/\.forward} ) # m[...] or # m|...| works also { say "i've got >$1<"; } else { say "ups >$path<"; } } =prints i've got >aaa< i've got >bbb< i've got >ccc< i've got >ddd< =cut __DATA__ /home/aaa/.forward /home/bbb/.forward /home/ccc/.forward /home/ddd/.forward