Re: [問題] print時依字元長度自動換行?

看板Perl作者 (Neisseria)時間10年前 (2014/11/26 17:30), 6年前編輯推噓4(404)
留言8則, 3人參與, 最新討論串5/5 (看更多)
※ 引述《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
List::Gen.. (筆記)
11/26 20:54, 1F

11/27 09:08, , 2F
我用linux不能跑use List::Gen qw(range); 版本問題嗎?
11/27 09:08, 2F

11/27 11:35, , 3F
List::Gen 只是用來建數列,不是非裝不可
11/27 11:35, 3F

11/27 11:37, , 4F
用 cpan 裝,很快就裝好了。Google 一下 local::lib 吧
11/27 11:37, 4F

11/27 14:41, , 5F
謝謝 不過這是公司電腦好相簿能自己裝 沒權限
11/27 14:41, 5F

11/27 18:15, , 6F
用 local::lib 應該就不需要管理者權限..
11/27 18:15, 6F

11/27 18:15, , 7F
我沒用過 local::lib, 我為了測不同版本的 perl 所以用
11/27 18:15, 7F

11/27 18:16, , 8F
perlbrew.. 也是不需要管理者權限
11/27 18:16, 8F
※ 編輯: Neisseria (60.251.46.166), 12/24/2018 16:21:08
文章代碼(AID): #1KTPsW3M (Perl)
文章代碼(AID): #1KTPsW3M (Perl)