Это соглашение - избегать использования $ _ при использовании чужих Perl API?

Меня только что поймали, когда я использовал чей-то API в сочетании с переменной по умолчанию $ _

foreach (@rps_server_details) {
    @server_data = ();
    @server_data = split(/,/);
    @$esp_hosts = ();
    $filters{server_name} = $server_data[0];
    print "--->$_<--\n";
    $esp_hosts = $esp->get_hosts(fields => $fields, %filters) || die "$@";
    print "--->$_<--\n";

Результатом этого является:

--->igrid8873.someone.com,app_10<--
Use of uninitialized value in concatenation (.) or string at ./rps_inv_lookup.pl line 120.
---><--

Указание моей собственной переменной цикла вместо того, чтобы полагаться на $ _ устраняет проблему.

Я просто наивен, используя $ _ вместе с API, написанным кем-то другим? Или это ошибка в этом модуле API?

9
задан Rob Wells 29 October 2010 в 18:05
поделиться