- PR -

perlのサブルーチン2

1
投稿者投稿内容
odik
ベテラン
会議室デビュー日: 2005/02/07
投稿数: 69
投稿日時: 2007-07-24 15:49
perlについての質問です。
宜しくお願します。

perlのサブルーチンがあるとします。

sample.pm
==============
sub A(){
my $str = test;
return($str);
}
1;
==============

あるシェルスクリプトから、上記のサブルーチンを
呼び出すとき、
==============
#!/bin/bash

STR=$( perl -Msample -e 'print sample::A();' )
echo "$STR"
==============
とすればよいのですが、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39615&forum=10&2


サブルーチンAがパラメータを受け取れるようになっていたとして、
シェルスクリプトからパラメータを渡したい場合どうすればよいの
でしょうか?
sample.pm
==============
sub A(%){
my $str = @_;
return($str);
}
1;
==============

シェルスクリプト
==============
#!/bin/bash
Z=test
STR=$( perl -Msample -e 'print sample::A($Z);' ) ←@
echo "$STR"
==============

上記@にてパラメータの渡し方を色々、変えて試してみたのですが
うまくいきません。
試してみた方法
sample::A(${Z});
sample::A("${Z}");

宜しくお願します。

odik
ベテラン
会議室デビュー日: 2005/02/07
投稿数: 69
投稿日時: 2007-07-24 17:09
すみません。自己レスです。

シングルクォートで囲っていたため、変数が
展開されませんでした。
ダブルクォートで囲ってやるとうまくいきました。

(変更前)
STR=$( perl -Msample -e 'print sample::A($Z);' )
(変更後)
STR=$( perl -Msample -e "print sample::A($Z);" )

失礼しました。

1

スキルアップ/キャリアアップ(JOB@IT)