$ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1}; 这句什么意思?

$ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1}; 这句什么意思?

$ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1}; 这句什么意思?
up
up
up
up
$ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1};
=>
$ARGV[0] =~ s/^([^\.]+)\.\/(.+)\/$/$1/;

perl -e '@ARGV=qw(/etc/jadsf\\./123/abc/);$ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1};print "$ARGV[0]\n"'
/etc/jadsf\

xxxxx./yyyyyzzzzz/-> xxxxx
谢谢,明白了。原来可以用s{}{}这种方代替s///;

那用s{}{}这种方式和s///有什么区别呢


QUOTE:
原帖由 miaho 于 2008-12-11 10:52 发表
谢谢,明白了。原来可以用s{}{}这种方代替s///;

那用s{}{}这种方式和s///有什么区别呢

都是分隔符。区别就是使用s{}{}时里面的/不需要转义了。
楼上正解!!


QUOTE:
原帖由 miaho 于 2008-12-11 10:52 发表
谢谢,明白了。原来可以用s{}{}这种方代替s///;

那用s{}{}这种方式和s///有什么区别呢

见 perlop 中的 Quote and Quote-like Operators