Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
$$contref = 文字列の中身 ?
> 千葉市中央区長洲
> 藤原 誠
臼> Perlのmodule呼び出しの際
臼> スカラーで返ってくるはずのところが配列で返ってきてしまっていた
臼> ということなのでしょうか?
確かに説明不充分の気がして、多分配列ということではなくて単に
ポインターの問題かなと思って、短いものを用意して見たのですが、
karin.namazu.org Linux/2.2.19 perl 5.6.1
手元の機械 NetBSD/maccpc 1.6T perl 5.6.1
で同じ結果になりません。euc の必要があるので base64 にしたい
ところですが jis で送ります。実行するなら sjis/euc にて保存し
て下さい。
(何か勘違いしているかなぁ)
---
(藤原)
#!/usr/pkg/bin/perl
use NKF;
use strict;
my $nkf_opt = "-jmXZ1";
sub a ($$) {
my ($contref, $opt) = @_;
$$contref = NKF::nkf($opt, $$contref);
}
sub b ($$) {
my ($contref, $opt) = @_;
$contref = [NKF::nkf($opt, $$contref)];
}
sub c ($$) {
my ($contref, $opt) = @_;
my $cont = NKF::nkf($opt, $$contref);
$$contref = $cont;
}
sub print_ ($$) {
my ($label,$contref) = @_;
print "($label) ".$$contref."\n";
print 'hex: '.unpack('h4',substr($$contref,0,2)),"\n";
}
sub main() {
my $a_string = "きょうはいいお天気です";
my $contref = \$a_string;
a($contref,$nkf_opt);
print_('a',$contref);
my $b_string = "きょうはいいお天気です"; # "別の字の方がいいか ?";
$contref = \$b_string;
b($contref,$nkf_opt);
print_('b',$contref);
my $c_string = "きょうはいいお天気です";
$contref = \$c_string;
c($contref,$nkf_opt);
print_('c',$contref);
}
main();
__END__
【手元】 NetBSD 1.6T/macppc perl 5.6.1
ttyp8:makoto@harry 15:00:04/030730(~/perl/practice)> perl NKF
(a) きょうはいいお天気です
hex: b142
(b) きょうはいいお天気です
hex: 4ada
(c) きょうはいいお天気です
hex: b142
ttyp8:makoto@harry 15:00:44/030730(~/perl/practice)> perl -d:DProf NKF
(a) vars
hex: 6716
(b) きょうはいいお天気です
hex: 4ada
(c) 2
hex: 23
ttyp8:makoto@harry 15:00:46/030730(~/perl/practice)>
【karin】 Linux 2.2.19, perl 5.6.1
makoto@karin:~$ pwd
/home/makoto
makoto@karin:~$ perl NKF
(a) きょうはいいお天気です
hex: b142
(b) きょうはいいお天気です
hex: 4ada
(c) きょうはいいお天気です
hex: b142
makoto@karin:~$ perl -d:DProf NKF
(a) きょうはいいお天気です
hex: b142
(b) きょうはいいお天気です
hex: 4ada
(c) きょうはいいお天気です
hex: b142