2

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

$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

我该怎么办?谢谢

4

5 回答 5

5

在 Perl 中,整数是看起来像整数的东西。因此字符串连接可以给出一个整数。

my $var3 = $var1 . $var2;
print $var3 * 2, "\n";   # 11342222

因此,您可以强制 Perl 存储整数,因为 Java 会int使用以下命令存储整数:

my $var3 = 0+( $var1 . $var2 );
于 2012-10-18T16:50:18.827 回答
1

尝试这样做:

my $var1 = 567;
my $var2 = 1111;

print $var1 . $var2 . "\n";

Perl中,.均值串联。

我们也可以这样编码:

print "$var1$var2\n";
于 2012-10-18T16:41:13.180 回答
1

你应该知道 perl 没有数据类型。"1234"出于所有意图和目的,字符串和1234perl 中的数字之间确实没有区别。Perl 可以无缝切换到上下文所需的任何数据类型。

所以你需要的只是字符串连接:

my $var3 = "$var1$var2";

或者

my $var3 = $var1 . $var2;

使用 perl,总有更多方法可以做到这一点:

my $var3 = sprintf "%d%d", $var1, $var2;
于 2012-10-18T16:42:39.693 回答
0

有趣的是,您可以连接以获取数字并将该值用作同一表达式的一部分:

my $a = '123';
my $b = '456';
my $c = "$a$b" * 2;
$c    = ( $a . $b ) * 2;
于 2012-10-18T18:04:42.303 回答
0

Perl 足够聪明,可以将两个整数字符串的连接解释为一个整数。

所以只需使用点运算符来连接字符串。

$bigstring = $string1.$string2;

在你的情况下

$var3=$var1.$var2 ;
于 2012-10-18T16:47:05.363 回答