[問題] 如何用變數存package name

看板Perl作者 (Jackie)時間16年前 (2009/09/29 14:52), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/1
剛剛小弟寫個小程式的時候遇到一點問題 就是假設一個變數存的是package的名稱 不知道要如何直接call該package下的subroutine 例如下面這段code -- my $pkg = 'pkgname'; $pkg->subname(1, 2); -- 這個方式是可以call該method... 但是pkgname::subname()收到的第一個參數會變成 "pkgname" 第二個參數才是 1 試了其他幾種組合都沒辦法成功 不過感覺上perl應該有辦法辦到 煩請高手指點 -- ~我的個人網站,歡迎蒞臨指教喔~ http://ku.myftp.org/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.162.42

09/29 17:49, , 1F
&{"$pkg\::subname"}(1, 2)
09/29 17:49, 1F

09/29 17:50, , 2F
如果有 use strict; 的話, 要設 no strict 'refs'
09/29 17:50, 2F

09/30 10:02, , 3F
謝謝...Perl的語法總是讓人驚奇 = =
09/30 10:02, 3F

10/02 20:47, , 4F
$pkg->can("subname")->(1,2)
10/02 20:47, 4F
文章代碼(AID): #1AmQwWrt (Perl)
文章代碼(AID): #1AmQwWrt (Perl)