如何在Perl中拆分字符串

时间:2015-07-05 07:32:40

标签: perl path split

我有一个包含路径的变量。

my $path = '../images/abc.png';

我想把它分成两条道路:

my $directory = '../images';
my $FileName = 'abc.png';

怎么做?

3 个答案:

答案 0 :(得分:2)

根据最后一个正斜杠字符分割您的输入。

my $line = "../images/abc.png";
my @abc = split /\/(?=[^\/]*$)/, $line;
print "Directory :\t" .$abc[0]."\n";
print "FileName  :\t" .$abc[1]."\n";

<强>输出:

Directory : ../images
FileName  : abc.png

答案 1 :(得分:2)

您最好使用核心模块File::Basename

#!/usr/bin/perl
use Modern::Perl;
use File::Basename;

my $path = '../images/abc.png';
my($filename, $dirs) = fileparse($path);
say $dirs,"\t",$filename

<强>输出:

../images/    abc.png

答案 2 :(得分:1)

您可以使用正则表达式

use strict;
use warnings;
use 5.010;

my $path = '../images/abc.png';

my ($dir, $file) = $path =~ m|(.+)/(.*)|;

say for $dir, $file;

输出

../images
abc.png