看板 Perl 關於我們 聯絡資訊
※ 引述《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
CindyLinz: List::Gen.. (筆記) 11/26 20:54
b13b46o2: 我用linux不能跑use List::Gen qw(range); 版本問題嗎? 11/27 09:08
Neisseria: List::Gen 只是用來建數列,不是非裝不可 11/27 11:35
Neisseria: 用 cpan 裝,很快就裝好了。Google 一下 local::lib 吧 11/27 11:37
b13b46o2: 謝謝 不過這是公司電腦好相簿能自己裝 沒權限 11/27 14:41
CindyLinz: 用 local::lib 應該就不需要管理者權限.. 11/27 18:15
CindyLinz: 我沒用過 local::lib, 我為了測不同版本的 perl 所以用 11/27 18:15
CindyLinz: perlbrew.. 也是不需要管理者權限 11/27 18:16
※ 編輯: Neisseria (60.251.46.166), 12/24/2018 16:21:08