我试图用连字符连接两个或三个变量。请查看以下示例。
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
答案 0 :(得分:10)
您可以使用join()
通过分隔符
my $Tn = join "-", $QueueName, $CustomerID, $UserCountry, $Count;
答案 1 :(得分:5)
您应该使用strict
和warnings
来强制执行良好的编程习惯。虽然您的解决方案在技术上是有效的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";
你必须引用字符串。如果你想要一个连字符,你可以使用上面的方法来分配用连字符分隔的值。