簡體   English   中英

Perl DBI常數-如何訪問?

[英]Perl DBI Constants - how to access?

獲取類型信息的文檔包括以下建議代碼,用於獲取代碼與整數之間的映射:

foreach (@{ $DBI::EXPORT_TAGS{sql_types} }) {
    printf "%s=%d\n", $_, &{"DBI::$_"};
}

但是perl 5.16.2不允許:

Can't use string ("DBI::SQL_GUID") as a subroutine ref while "strict refs" in use

我不知道該如何關閉嚴格的引用,而且我懷疑任何人這樣做都不是作者的意圖。 該子例程調用如何完成?

您可以通過執行以下操作關閉嚴格的“引用”

{
    no strict 'refs';
    foreach (@{ $DBI::EXPORT_TAGS{sql_types} }) {
        printf "%s=%d\n", $_, &{"DBI::$_"};
    }   
}

您為什么不提出no strict 'refs'; 在外面? 以下是對no strict 'refs';更適當的使用no strict 'refs';

for (@{ $DBI::EXPORT_TAGS{sql_types} }) {
    no strict 'refs';
    printf "%s=%d\n", $_, &{"DBI::$_"};
}

(也不要說jmcneirney快一微秒,因為那是錯誤的。)

或者,由於\\&不受嚴格的引用檢查,

for (@{ $DBI::EXPORT_TAGS{sql_types} }) {
    my $ref = \&{"DBI::$_"};
    printf "%s=%d\n", $_, $ref->();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM