1

菜鸟问题。我正在检查 perl 中是否存在文件,但是当我预先确定了 sourceFile 以及必须作为参数传入的路径时,我不确定如何将两个变量放在一起。换句话说,我如何将传入的参数与另一个变量连接起来,以便我可以使用 perl 的文件 test -X 函数?

$sourceFile = 'somefile';

if ( $ARGV[0] && -e ($ARGV[0] + '\' + $sourceFile) )

我也试过:

if ( $ARGV[0] && -e ($ARGV[0]\\$sourceFile) )
4

4 回答 4

8

在最简单的情况下,连接只是将变量以您希望的方式包含在双引号字符串中:

my $path = shift;        # pulls first argument from @ARGV
my $file = 'somefile';   
if (-e "$path/$file") {  # concatenate the variables

您还可以使用join

my $filename = join "/", $path, $file;

连接运算符

my $filename = $path . "/" . $file;

不要忘记在尝试学习 Perl 时,使用

use strict;
use warnings;

...将极大地帮助您了解自己在做什么以及正在发生什么。

于 2013-09-09T22:01:48.877 回答
6

要构建文件路径,最安全的方法是使用File::Spec::catfile与平台无关的方式连接路径组件。

use File::Spec;
if ( $ARGV[0] && -e File::Spec::catfile($ARGV[0], $sourceFile) )
于 2013-09-09T22:38:18.273 回答
1

这是你应该做的。

$sourceFile = 'somefile';

if ( $ARGV[0] && -e ("$ARGV[0]/$sourceFile") ) {}

字符串可以像这样在 perl 中连接

  $string3 ="$string1$string2" ; #1

  $string3 = $string1.$string2 ; #2

是开始学习 Perl 的好地方

于 2013-09-09T21:56:05.150 回答
0

使用 。连接变量

like $firstname . $lastname
于 2013-09-10T07:14:15.773 回答