>[оверквотинг удален]
> print "$$msg";
> -----------------------
> Скрипт выдает ошибку:
> Can't use string ("orange") as a SCALAR ref while "strict refs" in
> use at ./test.pl line 11, <STDIN> line 1.
> Если 'strict refs' убрать то:
> Use of uninitialized value in string at ./test.pl line 11, <STDIN> line
> 1.
> Warning: something's wrong at ./test.pl line 11, <STDIN> line 1.
> Ну или как правильно добиться нужной функциональности, заранее спасибо.Как-то все это гибло выглядит, не лучше так (на Perl):
#!/usr/bin/perl -w
use strict;
my ($var) = @ARGV;
exit 0 if !defined $var;
my %hash = (
orange => 'Orange',
apple => 'Apple',
grape => 'Grape',
);
print "$hash{ $var }\n" if exists $hash{ $var };
на bash:
#!/bin/bash
var=${1}
if [ -z ${var} ]; then
exit
fi
arr=(
orange=Orange
grape=Grape
apple=Apple
)
result=$(echo ${arr[${var}]} | sed 's/^.*\=//')
echo ${result}