我不想添加数字,而是“连接”它们并将值解释为单个数字。例如,
$var1 = 567;
$var2 = 1111;
#trying to explain what I wanna do with java-style syntax
$var3 = parseInt($var1 CONCAT $var2);
print $var3; #5671111 and is of type integer
我该如何解决这个问题?感谢
答案 0 :(得分:5)
在Perl中,整数看起来像一个整数。因此字符串连接可以给出整数。
my $var3 = $var1 . $var2;
print $var3 * 2, "\n"; # 11342222
因此,您可以强制Perl存储整数,因为Java将使用以下内容存储int
:
my $var3 = 0+( $var1 . $var2 );
答案 1 :(得分:1)
尝试这样做:
my $var1 = 567;
my $var2 = 1111;
print $var1 . $var2 . "\n";
在Perl
中,.
表示连接。
我们也可以编码:
print "$var1$var2\n";
答案 2 :(得分:1)
您应该知道perl没有数据类型。对于所有意图和目的,字符串"1234"
和perl中的数字1234
之间确实没有区别。 Perl可以无缝切换到上下文要求的任何数据类型。
所以你需要的只是字符串连接:
my $var3 = "$var1$var2";
或
my $var3 = $var1 . $var2;
使用perl,总有更多方法可以做到:
my $var3 = sprintf "%d%d", $var1, $var2;
答案 3 :(得分:0)
Perl非常聪明,可以将两个整数字符串的串联解释为整数。
所以只需使用点运算符连接字符串。
$bigstring = $string1.$string2;
在你的情况下
$var3=$var1.$var2 ;
答案 4 :(得分:0)
有趣的是,您可以连接以获取数字并将该值用作相同表达式的一部分:
my $a = '123';
my $b = '456';
my $c = "$a$b" * 2;
$c = ( $a . $b ) * 2;