perl里如何实现awk的打印域???????

perl里如何实现awk的打印域???????

如:
my $src = "3 */12 * * * /opt/XXX/XXX/updateWhtList.pl &> /dev/null";

my $tmp=`echo $src | awk '{print $6}'`;
$tmp =~ /\/\w+\.?\s/;
my $dst = $&;
print "$dst\n";

就是我想获取到updateWhtList.pl 这个值。

真土。
split 一下,然后 basename 一下,这才是正宗的 Perl 做法。


[Copy to clipboard] [ - ]
CODE:
flw@debian:~/study$ cat ttt.pl
use File::Basename;

my $src = "3 */12 * * * /opt/XXX/XXX/updateWhtList.pl &> /dev/null";
my @part = split /\s+/, $src;

my $scriptName = basename $part[5];
say $scriptName;
flw@debian:~/study$ perl -Mv5.10 ttt.pl
updateWhtList.pl
flw@debian:~/study$

是啊
我就是想知道perl是怎么实现的
谢谢楼上的
再问一下,为什么最后一项不用print而用say呢?
还有调用脚本是要 perl -Mv5.10。
因为我是5.8的所有错了。
把say改成print就对了。
say 和 print 是一样的。只是少打几个字母。
say 是5.10的特性,你的5.8当然用不了
#!/usr/bin/perl -w
################################################
#  Author        : Ecore
#  Date          : 2008-03-12
#  Description        : like awk -F: '{print $1}' file
#  Usage        : awkpl.pl -F: -n 0 /etc/passwd      
################################################


use strict;
use Getopt::Std;
use vars qw($opt_F $opt_n);
getopt("F:n:");

sub usage
{
        print "$0 -F : -n 1 filename\n";
        exit;
}


&usage unless (defined($opt_F) && defined($opt_n));

#print "-F = $opt_F\n";
#print "-n = $opt_n\n";
#print "@ARGV\n";

while(<>)
{
        my @filed = split /$opt_F/,$_;
        print "$filed[$opt_n]\n";
}

要使用split函数