Расмотрим два примера (пример 1 и пример 2)
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
### пример 1
my %hash=getHash();
print "\$hash{'k1'}==$hash{'k1'}\n";
print "Hash: ", Dumper(\%hash);
### пример 2
my $refToHash=getRefToHash();
print "\$refToHash->{'k1'}==$refToHash->{'k1'}\n";
print "RefToHash: ", Dumper($refToHash);
### subrutines
sub getHash{ my %ret=('k1' => 'v1','k2' => 'v2');
return %ret;
}
sub getRefToHash{ my %ret=('k1' => 'v1','k2' => 'v2');
return \%ret;
}
Оба примера печатают то-же самое.
Вопрос:чем принципиально отличаются два метода возврата хашей: по значению и ссылкой (reference)? Кроме избавления от необходимости копировать хаш, чем череват второй подход ( в с/с++ все мне понятно, а тут - не очень: все-таки garbage collector-ы всякие, memory management и т.п....)
спасибо
Ответ на:
комментарий
от nblx
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Perl + threads (2006)
- Форум Подправить скрипт perl (2022)
- Форум Скелетон ОО-класса, прячущего данные и автоподгружающего методы (2016)
- Форум плюсы и минусы (2012)
- Форум [opensuse]Плюсы & минусы (2009)
- Форум [bitrix] плюсы и минусы. (2012)
- Форум PulseAudio, плюсы и минусы. (2012)
- Форум darcs — плюсы и минусы (2020)
- Форум Плюсы и минусы postscreen (2018)
- Форум NUMA плюсы и минусы (2023)