"../input/a.tar"如何取得".tar"前面的字符串阿

"../input/a.tar"如何取得".tar"前面的字符串阿

大家好
"../input/a.tar"如何取得".tar"前面的字符串"../input/a"阿?
用正则表达式吗还是某个perl函数可以解决?
有知道的没。
perl -e '$i="../input/a.tar" ;$i=~ /(.\w+)$/ ;print $1';

笨方法
perl -e '$i="../input/a.tar" ;$i=~ /(.*)\.tar$/ ;print $1';
或者perl -e '$i="../input/a.tar" ;$i=~ /(.\w+)$/ ;print $`';
perl -e '$a="../i.tarnput/a.tar"; print [split /\.tar$/, $a]->[0];'
my $str = "../input/a.tar";
print substr($str, 0, rindex($str, '.tar'));


use File::Basename;
my $file = "../input/a.tar";
my ($name,$path,$suffix) = fileparse($file,qr/\.tar/);
print "$path$name\n";

http://www.notii.com/2007/08/more_perl_everyday.html
WWW-Search-Yahoo-2.405.tar.tar
这样的文件呢?
非贪婪匹配.
~/(.*?)\.tar/ig;