0

私は使用してみました:

my $nomIHMBloc = $1;
print decode_entities($nomIHMBloc), "\n";
$nomIHMBloc = decode_entities($nomIHMBloc), "\n";

しかし運がない。何か間違っていることでも?エラーが発生しました:

Undefined subroutine &main::decode_entities called at "same perl file"

ご協力いただきありがとうございます。

PS: 正確なコードは次のとおりです。

    while($blocVars =~ m/\[(.*?)\]/g){
                binmode STDOUT, ':utf8';
                my $nomIHMBloc = $1;
                print decode_entities($nomIHMBloc), "\n";
                $nomIHMBloc = decode_entities($nomIHMBloc);
                print "nomIHMBloc::::::::$nomIHMBloc=============$1\n";
                print "insert into ASSOC_VAR_BLOC (ID_BLOC, ID_VAR, DOC_ID_MAQUETTAGE) VALUES ($id_bloc, (SELECT ID_VAR FROM VARIABLE WHERE NOM_IHM='$nomIHMBloc'),'$docId')\n";
    }
4

1 に答える 1

2

ここでうまく動作します:

#!/usr/bin/env perl

use strict;
use warnings;
use open ':locale';
use HTML::Entities;

# example text
'42°' =~ /(.*)/; # 42°

# your code
my $nomIHMBloc = $1;
print decode_entities($nomIHMBloc), "\n";
#$nomIHMBloc = decode_entities($nomIHMBloc), "\n";

最後の行に構文エラーが含まれていました。スカラーへの割り当て中に改行を追加する場合は、文字列連結演算子を使用します.

$nomIHMBloc = decode_entities($nomIHMBloc) . "\n";

これprintはリスト演算子であり、引数のリストを取り、デフォルトで空の文字列を含み、単純な文字列連結のように機能する出力フィールド区切り文字 $,( perlvarを参照) でそれらを結合するため、機能します。ただし、出力は

42°

于 2012-11-28T16:58:30.877 に答える