Я пытаюсь создать то, что должно быть простым маленьким сабвуфером в Perl, который предпочтительно не использует какие-либо модули, которых нет в стандартном дистрибутиве RedHat Linux. Другими словами, чем более переносимо, тем лучше, потому что я не всегда могу контролировать, в какой системной среде я работаю. Очевидная проблема - передача переменных в подпрограмму, чтобы можно было использовать как исходное имя переменной, так и значение. Я могу получить один или другой, но не могу понять, как сделать оба без более сложного ввода для дополнительного вызова, как показано ниже. Я мог бы передать строку и ссылку, но это было бы почти так же грязно, как просто распечатать ее локально с помощью простого:
print "\$A = $A\n";
Есть также потенциальные проблемы с областью действия, но по одному шагу за раз. Теперь я думаю, может быть, это не так просто.
(Да, это код ленивого программиста, который я ищу)
Пример псевдокода:
my $A = 1;
my $secondVar = "something new";
my $XXX = 12345;
# Print a listing of the variables of interest in a nice easy to read listing
# with a minimum of typing.
printVars( $A, $secondVar, $XXX );
# Note I could settle for passing by reference \$A but no more complicated than this in
# the sub call. This is just a little utility sub to use to double check variables while
# coding something new.
Выход:
$A = 1
$secondVar = something new
$XXX = 12345
Грубый SUB:
sub printVars {
my @ListOfVars = @_;
my $i;
my ($theVarName, $theVarValue);
for( $i=0; $i<@ListOfVars; $i++) {
$theVarName = ??; # This is where things break down.
$theVarValue = $ListOfVars[$i];
print "$theVarName = $theVarValue\n";
}
}
Спасибо за любую помощь, вы можете оказать ..
Наслаждайтесь ..
--Bryan