myslim, ze uzavery predevsim zprehlednuji kod
ono poouzit neco ve stylu
if ($debug) {
$get_addr = &prepare_load_addrs_from_array(@ARGV);
} else {
$get_addr = &prepare_load_addrs_from_dhcpconf();
}
while ( $addr = &$get_addr ) {
if ( &is_ftp_active($add) ) {
# save addr
}
}
je mnohem prehlednejsi a bude to nejspise i rychlejsi nez jine moznosti, nebo se mylim? ... :-)
Obavam se, ze to rychlejsi nebude. Snad krome pripadu, ze si pri vytvareni uzaveru neco predpocitate.
Pokud by vam hodne zalezelo na rychlosti tak bych doporucoval neco jako :
use constant DEBUG => scalar(@ARGV);
...
sub get_addr {
if (DEBUG) {
udelej neco s @ARGV
} else {
udelej neco s dhcpconf()
}
zbytek kodu
}
Optimalizator totiz uz pri kompilaci pozna ktera vetev toho if()u neni potreba a odoptimalizuje ji i ten test.
Samozrejme pouze v pripade, ze DEBUG je definovano jako konstanta uz pred tim if()em.