私はDBD::Sybaseを使用していませんが、a)他の多くのDBDを使用しており、b)現在DBDでのUnicodeサポートに関する情報を収集しています。ポッドによると、syb_enable_utf8を使用する場合は、少なくともOpenClient15.xが必要です。15.x以降を使用していますか?クライアントが15.x未満の場合、またはDBD :: Sybaseのバージョンが古すぎる場合は、syb_enable_utf8が定義されていない可能性があります。残念ながら、syb_enable_utf8が追加されたとき、変更ファイルからはわかりません。
ただし、「メソッドが見つかりません」と言うと、syb_enable_utf8はメソッドではなく、ポッド内の属性(Sybase固有の属性の下にあります)であるため、これが手がかりになると思います。したがって、接続呼び出しに追加するか、次のような接続ハンドルを介して設定する必要があります。
my $h = DBI->connect("dbi:Sybase:something","user","password", {syb_enable_utf8 => 1});
また
$h->{syb_enable_utf8} = 1;
syb_enable_utf8がUNIVARCHAR、UNICHAR、およびUNITEXT列にのみ適用されるドキュメントから表示されるように設定されている場合に何が起こるかを説明するポッドのビットも読む必要があります。
最後に、最初にデータを正しく挿入する必要があります。syb_enable_utf8およびcharset=utf8を使用してPerlから挿入されておらず、挿入する前にデータがPerlの適切なユニコード文字でない場合は、ガベージが返されます。
Raze2dustが行ったコメントはあなたの問題とは何の関係もありませんが、データベースから取得したデータを他の場所に書き込む場合は注意する価値があります。スクリプトへのデータ入力をデコードし、データ出力をエンコードすることを忘れないでください。