我正在查看perl中的一行代码,并尝试理解它实际意味着什么。它看起来像是
$somestring = "0$SomeString" while(length($someString) < 10)
我理解此作业的其他部分,除非在此处说0$somestring
?
答案 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)
更好的方法是$somestring = '0' x (10 - length($somestring)) . $somestring
。
如果,$somestring
应该包含一个整数值,并且您希望将该数值保留在0
s,那么您有sprintf:sprintf '%010d', $somestring
。< / p>
答案 5 :(得分:0)
"0$SomeString"
是双引号字符串。它包含字符“0”,后跟变量$SomeString
的内容。
如果不清楚,请说明它的哪一部分让你感到困惑。