我有一个包含路径的变量。
my $path = '../images/abc.png';
我想把它分成两条道路:
my $directory = '../images';
my $FileName = 'abc.png';
怎么做?
答案 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