什么" 0 $变量"在perl中意味着什么?

时间:2018-04-13 23:58:36

标签: perl

我正在查看perl中的一行代码,并尝试理解它实际意味着什么。它看起来像是

$somestring = "0$SomeString" while(length($someString) < 10)

我理解此作业的其他部分,除非在此处说0$somestring

6 个答案:

答案 0 :(得分:5)

我知道不鼓励仅使用代码的答案......但这似乎很简单:

£ perl -e '
quote> $mystring = "48";
quote> $mystring = "0$mystring" while(length($mystring)<10);
quote> print "$mystring\n";
quote> '
0000000048
£

答案 1 :(得分:3)

(请注意,在Perl中,$somestring$SomeString$someString 等效。就本答案而言,我是&#39; m假设所有三个都是$somestring。如果它们确实是三个独立的变量,那么问题中的代码行将根本不执行任何操作或永远循环,具体取决于{的长度{ {1}}。)

$someString修改$somestring = "0$somestring"的值,以便在字符串的开头插入$somestring

添加0部分后,您询问的代码行的整体效果是将while填充为带有前导零的10个字符的长度。

答案 2 :(得分:1)

我相信只是将$ Something的值附加0并将其分配给$ somestring。 注意:L.H.S和R.H.S两个变量都不同 最后检查变量的长度是否小于10或更多。

答案 3 :(得分:1)

原创非常 ish 版本:
<html> <head> <link rel="stylesheet" type="text/css" href="../css"> </head> <body onLoad="buildPage()"> <div id='container'> <div id='head'>header icons</div> <div id='body'> <div id='sidebar'>sidebar <div id='sidebarLinks'></div> <div id='sidebarAdSpace'></div> </div> <div id='mainpage'>mainpage</div> </div> </div> <script src='../public/grabdata.js'> </script> <script> function buildPage() { var page=3; var url= window.location.href.split('&'); var page=url[1]; //alert(param); getData(page, function(str) { str = JSON.parse(str); var linkHTML = ''; var postHTML = ''; linkHTML += "<ul>"; for (var i in str) { linkHTML += "<li><a href='../post/&" + str[i].id + "'>" + str[i].title + "<i>~" + str[i].published.slice(0, 10) + "</i></a></li>"; } linkHTML += "</ul>"; postHTML+="<div class='poster'><div class='posterHead'><div class='postTitle'>"+str[0].title+"</div><div class='postSeries'>Part of the "+str[0].series+" series</div></div><div class='postBody'>"+str[0].body+"</div><div class='postAuther'>"+str[0].auther+"</div><div class='postPublished'>"+str[0].published+"</div></div>"; document.getElementById('sidebarLinks').innerHTML = linkHTML; document.getElementById('mainpage').innerHTML = postHTML; }) } </script> </body> </html>

等效更易读的版本:

$somestring = "0$SomeString" while(length($someString) < 10)

答案 4 :(得分:1)

Left pad strikes again

更好的方法是$somestring = '0' x (10 - length($somestring)) . $somestring

如果,$somestring应该包含一个整数值,并且您希望将该数值保留在0 s,那么您有sprintfsprintf '%010d', $somestring。< / p>

答案 5 :(得分:0)

"0$SomeString"是双引号字符串。它包含字符“0”,后跟变量$SomeString的内容。

如果不清楚,请说明它的哪一部分让你感到困惑。

相关问题