Perl将两个数字连接成另一个数字?

时间:2012-10-18 16:40:09

标签: perl integer concatenation

我不想添加数字,而是“连接”它们并将值解释为单个数字。例如,

$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

我该如何解决这个问题?感谢

5 个答案:

答案 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;