Re: [問題] print時依字元長度自動換行?
※ 引述《b13b46o2 (買槍買裝備)》之銘言:
: ※ 引述《cutecpu (可愛中央處理器)》之銘言:
: : #!/usr/bin/perl -w
: : $_='aaaaaaaaabbbcddddd........zzzz';
: : s/(.{10})/$1\n/g;
: : print;
: 請問我該怎麼在有變數的情況下輸入數值10次以後次換行
比較簡單的方式是用 index 跑迴圈
以下是簡單的例子
use List::Gen qw(range);
my $r = range(100, 1, -1);
for my $i (0..$#$r) {
print $r->[$i], " ";
if ($i % 10 == 9) {
print "\n";
}
}
如果用數值本身跑迴圈,就要自己另外加 index 來計數
同樣附上一個簡單的例子
use List::Gen qw(range);
my $r = range(100, 1, -1);
my $i = 1;
for my $e (@{$r}) {
print "$e ";
if ($i % 10 == 0) {
print "\n";
}
$i++;
}
: for $a (1..100)
: {$_ = $a ;
: s/(.{10})/$1\n/g;
: print;
: }
: print"\n";
: 本來想說這樣能不能12345678910 之後換行後輸出11121314151617181920
: 但是後面想了一下
: 他輸入1之後就會先print完才會輸入2
: 但是為什麼輸出畫面是12345678910........100一直到一百才換行
: 不是應該1
: 2
: 3
: 這樣一直下去到100嗎?
其實,既然指明變數 $a 了,就一路將 $a 明白表示比較好,不過這是題外話
回到這個例子本身,trace 一下每次的 $a 實際的數值,就會知道原因
第一次 $a 是 1,經 regex 修改後仍然不變,再傳給 print 輸出
第二次 $a 是 2, 經 regex 修改後仍然不變,再傳給 print 輸出
以下同理
: s/(.{10})/$1\n/g;
: print;
: 這個也有放在{}之後但是迴圈已經是100輸入
: 所以輸出畫面只有寫100
: 請問我要怎麼在有變數的情況下輸出畫面10個個數以後換行??
: 新手入門,只從網路隨便亂看
: 有推薦哪本實體書可看得嗎(中文版)
比較經典的還是 Perl 學習手冊 和 Perl 進階手冊 這兩本
然後 Programming Perl 視自己的需要買,也可以直接上網查 reference
我自己是看 Beginning Perl by Curtis "Ovid" Poe
雖然是英文的,但比較新,有 cover Moose 等內容,算是一本抵以上兩本
參考看看
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.31
※ 文章網址: http://www.ptt.cc/bbs/Perl/M.1416994208.A.0D6.html
推
11/26 20:54, , 1F
11/26 20:54, 1F
推
11/27 09:08, , 2F
11/27 09:08, 2F
→
11/27 11:35, , 3F
11/27 11:35, 3F
→
11/27 11:37, , 4F
11/27 11:37, 4F
推
11/27 14:41, , 5F
11/27 14:41, 5F
推
11/27 18:15, , 6F
11/27 18:15, 6F
→
11/27 18:15, , 7F
11/27 18:15, 7F
→
11/27 18:16, , 8F
11/27 18:16, 8F
※ 編輯: Neisseria (60.251.46.166), 12/24/2018 16:21:08
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章