Re: [問題] 排列組合

看板Perl作者 (Art of Life)時間16年前 (2008/03/01 11:48), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《david220 (累)》之銘言: : ※ 引述《abliou (Art of Life)》之銘言: : : 這幾行程式碼真的寫的很棒..用遞迴減少很多程式碼... : : 不過還是有一些東西小弟想了很久還是不能參透.... : : 不知道能不能請高手為小弟指點一下....真的感激不盡!! : : 這是我的第一個疑問...就是這邊open的用法...它會對那一個檔打開?? : : 另外這邊為什麼沒有filehandling? : open是開shift的return value : $a才是file handle 非常感謝您的指教!!這邊我就瞭解了.... : : 接這就是這一行....我很不了解這一行的程式運作方式... : : 而且當中用了很多逗號...我很想了解到底逗號的使用時機跟限制到底是如何? : 那一行大約等同 : for (split /\s/, <$a>) { : push(@a, $_); : (@_ && a(@_) || print "@a\n"); : pop @a; : } 在comma這邊我也有想過您所講的意思....所以我用了以下兩種不同的程式碼測試 ======以下為comma.pl===== @a=("a"); push @a,$_ , $a++ , print @a,$/,$a,$/ for (0..3); ======回傳=============== a 1 a001 2 a001111 3 a001111221 4 =====以下為comma2.pl===== @a=("a"); for (0..3){ push @a,$_; $a++; print @a,$/,$a,$/; } ====回傳================= a0 1 a01 2 a012 3 a0123 4 這兩段程式碼我不知道這樣的拆解是不是會有所差異... 不過按照我預期的回傳comma.pl跟comma2.pl應該要一樣... 而對於comma.pl的回傳我卻完全無法理解為何會如此.... : 注意@a是global : : 有試著去實做和查資料..但是都途勞無功...所以在此請教高手們... : : 感謝高手們的指教..因為小弟正在當兵..可能沒有辦法為教導的高手們提出即時的感謝 : : 但小弟有放假一定會來道謝.... : : 先在這邊謝過各位高手了... : 這段code開了(ab102 ac1256 ef698 ed23)這四個檔案 : 檔案裡面的資料用tab隔開 : 雖然我看本來的題目似乎是只有一個檔案,內容為 : ab102\t11,01,65,99,68,78 : ac1256\t01,23,41,65,74,63,26 : ef698\t02,13,56,07,09 : ed23\t32,05,06,23 : 不過,也有可能是我搞錯就是了 ^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.196.66

03/01 14:14, , 1F
push @a,$_ , $a++ , print @a,$/,$a,$/ for (0..3);那行
03/01 14:14, 1F

03/01 14:15, , 2F
改 push(@a, $_) , $a++, .... 才會一樣
03/01 14:15, 2F

03/01 14:15, , 3F
本來那樣寫 $a++ , print的return value都會push進@a
03/01 14:15, 3F

03/01 18:27, , 4F
原來是這樣!!感謝!!!!!
03/01 18:27, 4F

03/01 18:32, , 5F
那是否可以再請教,最後@a值是a001111221,到底是那些值被
03/01 18:32, 5F

03/01 18:33, , 6F
push進去了?
03/01 18:33, 6F

03/01 18:37, , 7F
我大概清楚了!!感謝d大的指教!!
03/01 18:37, 7F
文章代碼(AID): #17oD8dF- (Perl)
討論串 (同標題文章)
文章代碼(AID): #17oD8dF- (Perl)