看板 Perl 關於我們 聯絡資訊
chomp(my @lines = <STDIN>); print "1234567890"x3, "\n"; foreach (@lines) { printf STDOUT "%10s\n", $_; } 本來應該期許出現 1234567890123...90 ab ak3 這樣的結果 不過我發現我讀進來的每列好像除了\n 還有個\r (大概是因為Windows的關係) 導致對齊結果會差一格。 5-3題也是遇到類似情形, 因為 chomp(my $width=<STDIO>); 無法除掉\r, 導致 "%${width}s"的寫法會失敗, 要嘛就是除掉\r, 要嘛就是改用 "%*s", $width chomp 可以幫我幹掉\n, 那有沒有簡單的方法除掉\r? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.166.1 ※ 編輯: StarTouching 來自: 111.251.166.1 (03/17 23:20)
flamerecca:RegExp? 03/17 23:27
StarTouching:這和regular expression有關嗎? 03/18 00:03
StarTouching:讀到第七章為止 我好像想不到辦法除掉\r 03/18 00:04
StarTouching:這樣會讓我做習題都不順利.... 03/18 00:04
frank1983:如果您確認換行符號為 "\r\n",您可以在程式一開始執行 03/18 00:39
frank1983:$/ = "\r\n"; 這樣 chomp 會去掉字串尾端的 "\r\n" 03/18 00:40
abliou:正要回的說 XDD 樓上高手 03/18 00:41
StarTouching:太感謝了 It works!! 這樣可以繼續寫習題了 XD 03/18 00:59
cutecpu:推 frank,學到一招 03/18 16:04
flamerecca:推 學會$/這個符號>< 03/18 17:23
StarTouching:想動$/的人 也請注意一下我的下個問題喔 03/18 18:45
StarTouching:兩者會有關係 03/18 18:46