如何用连字符连接Perl变量?

时间:2015-09-21 14:25:53

标签: perl hyphen

我试图用连字符连接两个或三个变量。请查看以下示例。

my $QueueName   = Support;
my $CustomerID  = abc;
my $UserCountry = India;
my $Count       = 12345;

my $Tn = $QueueName.$CustomerID.$UserCountry.$Count;

我得到以下输出:

"$Tn" = SupportabcIndia12345

但我想这样:

$Tn = Support-abc-India-12345

3 个答案:

答案 0 :(得分:10)

您可以使用join()通过分隔符

来连接列表元素
my $Tn = join "-", $QueueName, $CustomerID, $UserCountry, $Count;

答案 1 :(得分:5)

您应该使用strictwarnings来强制执行良好的编程习惯。虽然您的解决方案在技术上是有效的Perl,但它会使strict测试失败,因为您尝试使用" barewords"来定义变量。

要解决此问题,请将这两行放在代码顶部:

use strict;
use warnings;

然后修改您的代码以符合strict模块的规则。

例如:

my $QueueName = Support;

应该是:

my $QueueName = 'Support';

至于连接变量,这将起作用:

my $Tn = $QueueName.'-'.$CustomerID.'-'.$UserCountry.'-'.$Count;

-OR -

my $Tn = "$QueueName-$CustomerID-$UserCountry-$Count";

join功能也可以使用:

my $Tn = join '-', $QueueName, $CustomerID, $UserCountry, $Count;

根据谁将维护您的代码,对于那些没有Perl经验的人来说,前两种方法可能更具可读性。

答案 2 :(得分:0)

这不是很好的Perl,也不会在你真正应该使用的use strict下运行。如果你是,你会看到错误显示。

这样写,而不是:

use strict;
use warnings;

my $QueueName   = 'Support';
my $CustomerID  = 'abc';
my $UserCountry = 'India';
my $Count       = '12345';

my $Tn = "$QueueName-$CustomerID-$UserCountry-$Count";
print "$Tn\n";

你必须引用字符串。如果你想要一个连字符,你可以使用上面的方法来分配用连字符分隔的值。

相关问题