看板 Perl 關於我們 聯絡資訊
你試試看這段程式, 是不是符合你想要的功能? @a = (1,2,345); @b = (12,34,5678); @c = (123,45,6); format A = @<<<<<< @|||||| @>>>>>> $a $b $c . $~ = 'A'; for(0..3) { ($a, $b, $c) = ($a[$_], $b[$_], $c[$_]); write; } 輸出: 1 12 123 2 34 45 345 5678 6 ※ 引述《ForeverT (全家好神)》之銘言: : 這問題的很簡單 也很簡短 但為了詳細敘述所以寫比較長 : 希望各位高手不要看到一大篇就左轉 謝謝各位高手 : 我有個文字檔 經過perl擷取部分資料 寫進陣列之後 : 用迴圈重新print陣列中資料 : 但文字部分 有長有短且差異很大 希望print之後很整齊 : 例如 : for($ = 0; $i <= 100; $i++) { : print OUT "@array1[$i]\t"; : print OUT "@array2[$i]\n"; : } : 結果可能會成這樣 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 因此我再改成 : for($ = 0; $i <= 100; $i++) { : printf OUT "%15s" , "@array1[$i]\t"; : printf OUT "%15s" , "@array2[$i]\n"; : } : 結果可能會成這樣 類似靠右對其 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 但我希望是靠左對其 如下 : xxxxxxxxxx xxxxxxxxx : xxxxxxxxxxxxxxxx xxxxxxxxxxx : xxxxx xxxxxxxxx : 請問各位高手 該如何寫呢? : 再請問如果要 置中對齊又該如何寫呢? : 感謝 再感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.192.252
ForeverT:感謝 原來可以這樣 但是如果我字串長短差距很大的話 03/30 15:20
ForeverT:且是未知的字數 這樣<<<<<<或 >>>>>> 如果不夠多 03/30 15:21
ForeverT:就會把我字數消掉 03/30 15:21
ForeverT:如果打多一點>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 03/30 15:21
ForeverT:又有可能我這個檔案的字串篇短 而留太多空格 03/30 15:21
ForeverT:也就是說 我字串數字未知 又該如何寫呢 03/30 15:23
ForeverT:太多了 重新發文 03/30 15:23
CindyLinz:較複雜的變化, 那還是用 length() 迴圈去計算比較方便嘍 03/30 15:56
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:13)