5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Perlについての質問箱 5箱目

1 :デフォルトの名無しさん:03/05/16 11:44
"The duct tape of the Internet"こと、
Perlについての質問箱です
"There's more than one way to do it"ということで
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc2.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするので
WEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。

過去ログは>>2-5あたり

149 :デフォルトの名無しさん:03/05/28 01:07
コマンドラインから実行する一行スクリプトを作っています。

SQL を作るために、別ファイルから読み込んだ文字列を '' の中に埋め込む、
という処理をしたいのですが、-e の中なのでシングルクオートを使えません。

perl -n -e 'printf("INSERT INTO url (url) VALUES ('%s');", $_);' source.txt

何か良い方法はないでしょうか?

150 :デフォルトの名無しさん:03/05/28 01:15
Perl仕事で使える?

151 :デフォルトの名無しさん:03/05/28 01:16
Perlって趣味でしょ?

152 :デフォルトの名無しさん:03/05/28 01:25
>>150
さっきVBスレでも聞いていなかったか?
仕事で使いたいならC++かJavaやりなよ。他の人のことはいい。

153 :デフォルトの名無しさん:03/05/28 01:52
>>150

仕事で使ってるUNIX環境だと、

C++:コンパイル環境無し
Java:同じく
シェル:処理遅い

って感じでPerl使ってるんだけどさ。
まぁ、別にCでも良いんだけど。
CGIだと未だにPerlってイメージがあるからね。
スキルアップちゅうか、経験になるかな?程度で使ってるな。

まぁ、プログラムの仕様でPerl使えって言われりゃPerlを使うわけで...

154 :デフォルトの名無しさん:03/05/28 02:02
仕事で、というのが個人レベルの問題解決なのか、
グループ内に配布して使うのか、
社内で正式リリースするのか、
それどころかクライアントに渡すのか、
で全然変わってくる罠。

155 :149:03/05/28 10:13
>>149 への自己レスです。
アスキーコードでシングルクオートを指定してやることで解決できました。
$ perl -n -l -e 'printf("INSERT INTO uniq_uri (uri) VALUES(\x27%s\x27);\n", $_);' source.txt

156 :デフォルトの名無しさん:03/05/28 10:18
>>149
シェルの話なのでバックスラッシュ(\)でquoteするのが普通だけど、
$ perldoc -f q
$ perldoc perlop
という手もある。

157 :デフォルトの名無しさん:03/05/28 10:21
>>144
Perlのエスケープ・シーケンスはCよりも多いぞ。Cには\eなんてない。


158 :デフォルトの名無しさん:03/05/28 10:23
>>145
親プロセスのpwdを変えようとしてるんなら、単独では不可能。
ディレクトリ名を出力して親プロセスでそれを読んでcdするしかない。

159 :156:03/05/28 10:28
>>149
ごめん、この場合qはぜんぜんダメですね。

160 :149:03/05/28 11:15
>>159
確かに、q// を使っても qq// を使っても、
出力にシングルクオートが出てこないんですよね。
シェルに消されてるのでしょうか?
$ perl -n -l -e 'printf(qq/INSERT INTO uniq_uri (uri) VALUES('%s');\n/, $_);' source.txt
INSERT INTO uniq_uri (uri) VALUES(http://www.example.com);

バックスラッシュ付けると bash の文法エラーになっちゃうし。
$ perl -n -l -e 'printf(qq/INSERT INTO uniq_uri (uri) VALUES(\'%s\');\n/, $_);' source.txt
bash: syntax error near unexpected token `;'


環境は以下の通りです。
$ bash --version
GNU bash, version 2.04.0(1)-release (i386-turbo-linux-gnu)
Copyright 1999 Free Software Foundation, Inc.

$ perl --version

This is perl, version 5.005_03 built for i386-linux
(以下略)

224 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)