0

基本上我有一个环境变量,它存储一个目录的位置,如下所示

export MYPATH=/home/test/mysamplepath

现在在 Perl 脚本中,我想知道该目录上方的一个路径,或者使用函数或某个表达式,通过该表达式可以删除最后一部分,即如下所示

$myNewPath = '/home/test'
4

4 回答 4

6
use File::Basename;
my $myNewPath = dirname($ENV{MYPATH});
于 2013-08-02T16:22:23.160 回答
0

您可以将路径与正则表达式匹配:

if($line =~ /export\s\$MYPATH=(.*)(?<!\\)\//){
  $new_path = $1;
}

\如果您在 url中转义,这也有效。

于 2013-08-02T16:25:40.940 回答
0

在基于 Linux 或 Unix 的系统上,您可以像这样读取环境变量,然后使用正则表达式剪切所需的其余路径:

#!/usr/bin/perl

use warnings;
use strict;

my $path =  $ENV{'MYPATH'};
$path =~ s/^(\/.+)\/.+\/?$/$1/;
print $path . "\n";
于 2013-08-02T16:24:18.550 回答
0

my $mynewpath = $oldpath =~ /(.+?)/\w+/; Try that.

于 2013-08-02T16:19:36.383 回答