[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/23 21:37 / Filesize : 239 KB / Number-of Response : 927
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:10:40 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

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

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

www.perl.org/get.html
● 2008/08/11 現在の最新版(安定版): 5.10.0
● 2008/08/11 現在の開発版: 5.9.5

▼ 前スレ
Perlについての質問箱 36箱目
pc11.2ch.net/test/read.cgi/tech/1215569470/

リンク集は>>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは>>5-6 あたり

697 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:38:34 ]
コマンドラインで引数を与える時に、間違った変数名で入力した場合に
Usageを出したいのですが、どうすればいいでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:40:28 ]
正規表現で判定するか、CPANからモジュール引っこ抜いてきて判定する
後はprintでusage出せばおk

699 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:43:47 ]
その正規表現の方法がわからないのです。

C:xxx.pl -aaa=1を間違って
C:xxx.pl -aa=1と入力なのですが・・・・

中で変数を宣言してなくて、外でしているのですが、変数名を見ることができるのですか?

700 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:46:07 ]
何を言っているのか意味不明

701 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:51:00 ]
C:xxx.pl -aaa=1を間違って
C:xxx.pl -aa=1入力した場合エラーをだしたい

-aaa=1 が正しく
-aa=1 が間違い

プラグラム中には

our $aaa は宣言してますが
our $aa  は宣言していません

なのですが

説明下手ですいません

702 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:13:28 ]
ああ、そうか。
引数で -aaa って言ったら、普通は a が3つって解釈すると思う。

んで、素直に if 文じゃダメ?

703 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:14:21 ]
>>694-696
XSや、エラーを出す原因となっているスクリプト部分や、
dualvar、set_prototypeなど何だか分からない言葉が
大量に出てきたので、勉強して出直してきますw

自分の書いたプログラム以外の物を編集するのは
気が引けるので、環境を整える方向で考えてみます。

ありがとうございました。

704 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:17:05 ]
>>701
必要な変数に値が与えられたかどうかを判別するので対処出来るのでは?
与えられた引数全てを見れるような方法が欲しいってこと?

705 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:54:19 ]
>>697
> コマンドラインで引数を与える時に、間違った変数名で入力した場合に
> Usageを出したいのですが、どうすればいいでしょうか?

?を使えばいい。



706 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:12:25 ]
引数のオプション名を変数名に紐付けるのではなく、
ハッシュキーに紐付けることで少し楽になる。
あとは Hash::Util を使ってロックした上でエラートラップするなり、
keys %hash リストの各要素と順次 eq するなり。

707 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:23:51 ]
>>699
なんでそんな入り組んだややこしい遠回りで手の込んだことをしたいの?

ふつうにGetopt::Longで処理するのではだめなのか?

708 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:27:42 ]
宣言されている変数に値を代入したいという意味なら、こうするのはどうだろうか?

# 宣言時にとりあえず空文字をいれておく
our $aaa = "";
our $bbb = "";

for (@ARGV) {
defined ${$1} and ${$1} = $2 if( /-(.+)=(.+)/ )
}

709 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:18:10 ]
>>696
今回は grep BLOCK LIST なので、マッチ演算が行われた(目に見える)ブロックから抜けている罠。

695をブロックで書いたのは $数字 のスコープから抜けている点がブロックと同じだからなんだけど、
組み込みのgrep関数のソース(pp.c 内の pp_grepstart)を見たら中でENTER を行っていた(==grepの
中にブロックに入る/抜ける時と類似の処理が含まれていた)ので、ブロックでも構わなくね?

そうでなくても組み込み関数のオーバーライドがありうるので、関数はブロック(サブルーチン)のよう
に扱う方が無難だと思うのだが、Scalar::Util の作者はそう考えなかったみたい。

710 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:50:06 ]
>>709
grepのあとがブロックになってるのを見落としていた。スマン。
で、これどうみてもScalar::Utilのバグじゃね?


711 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:17:01 ]
itpro.nikkeibp.co.jp/article/NEWS/20080905/314238/
この人て有名なの?

712 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:31:43 ]
【コミュニティーサイト作成有志募集!】

現在コミュニティーサイトGaccoで有志を募集しています。
詳しい概要等は
www36.atwiki.jp/vipvipschool/
こちらをご覧下さい。

・プログラミングができる方
(現在技術陣は6名です)
・ウェブデザイン・画像編集能力がある方
(現在デザイン陣は2名です)
・宣伝能力のある方
(人員募集やサイト完成後の宣伝等。動画編集ができると○。)

を募集しています。
気軽にIRCに参加、またはsuteあっと2ch.bona.jpまでメールを下さい。

スレッド:ttp://ex14.vip2ch.com/test/read.cgi/news4gep/1219068297/l50

713 名前:デフォルトの名無しさん [2008/09/08(月) 05:24:01 ]
perlを始めて日の浅い初心者です。
練習として、google検索をしてその件数を出すというプログラムを書いているのですが、
出力と手動で検索した時の件数に誤差が生じます。
ソース挙げておきますので、良ければご指摘下さい。
よろしくお願いします。
use Web::Scraper;
use URI;
use utf8;
use Encode;

my $scraper = scraper { process '/html/body/div[2]/p/b[2]', 'kensuu' => 'TEXT';};
my $uri = new URI('www.google.com/search');
$uri->query_form( hl => 'ja' , q => 'コミュニケーション');
my $res = $scraper->scrape($uri);
print $res->{kensuu};

出力
33,500,000
手動で検索
33,900,000
となってしまいます…。

714 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 05:38:29 ]
use feature qw( :5.10 );
system q|cls|;
for (1..120) {
state $a="a";
print $a," ";
$a++;
}
say"";


#----------------------
↑なにこれ
楽しい

from
jp.youtube.com/watch?v=v7riTEp9v2s&feature=related

715 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 05:46:48 ]
use feature qw( :5.10 );
system q|cls|;
open FH,">","1.txt";

for (1..120000) {
state $a="a";
print FH $a," ";
$a++;
}

say "done.Please check out 1.txt";

#---------------------------------
たのしー
これって出力結果を要素ひとつづつ
配列に入れたりもできるのかな?



716 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 05:58:40 ]
use feature qw( :5.10 );
system q|cls|;
open FH,">","4.txt";

for (1..12000000) {
state $a="a";
print FH $a," ";
$a++;
}
#--------------------------

↑これで1千2百万回まわしたら、
70MBのテキストファイルになって、
エディタで開いたら表示がぶっ壊れた

kazato.run.buttobi.net/cgi-bin/material/src/vm002_0268.png

717 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:12:48 ]
>>713
$uri->query_form( hl => 'ja' , q => 'SEX');

この検索ワードだったら
手動とスクリプトで、
ぴったり件数一致しました。

718 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:15:49 ]
何件か試してみたけど、
日本語のキーワードだとずれる、
アルファベットのみだと、ぴったり一致する、
という特性があるみたいですね。

719 名前:デフォルトの名無しさん [2008/09/08(月) 06:18:33 ]
俺も何件か試したが、なんでズレるんだ?


720 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:31:19 ]
>>719
英語のみのキーワードだとずれないでしょ?

721 名前:デフォルトの名無しさん [2008/09/08(月) 06:50:05 ]
ずれないけど検索するんなら、713もコミュニケーションしてるし、日本語だろうからあんまり意味ないんじゃね?


722 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 06:55:56 ]
日本語で検索しなければ良い。


723 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 11:27:12 ]
シェルも使える人にお聞きしたいのですが、Perlとシェルって共通してる部分ありますか? 
シェルも勉強したいと思ってきたので。。。 


724 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:12:12 ]
my $q = CGI->new();
これを

&Init($q);
みたいにしてその中で
$q->param('filename')
みたいな処理を行いたくて

CGIオブジェクトをいろんな引数に渡したいのですが
どうやってやればいいのですか

725 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:17:37 ]
sub Init { my $q = shift; }



726 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:22:19 ]
おお、そんなことが ありがとうございます
どこら辺の単語で出てきますか



727 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:23:18 ]
>>723
記述的には、C程似て無いとは思う
でも、言語なんて 表示、条件判定、ループ、サブルーチン作成。
こんだけ分かれば、大抵のものは組めるけどね

728 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:26:58 ]
>>723
どちらもソフトウェアという点が共通してるよ。

729 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:48:54 ]
> ・シェルスクリプトのことをシェルってゆーな

なんとなく某所のテンプレから借りて来た。

730 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:50:39 ]
>>713-722
多分だけど、googleに限らず大手の検索エンジンなんか数百台〜数千(数万?)台のサーバーで
構築されてるんだろうから、毎回必ず同じ結果が返って来るとは限らないんじゃない?
(Yahooなんかは、同一環境でもCookeiが違えば、件数どころか上位十件が全然違うこととかもあるw)

たしかgoogleは、ブラウザの HTTP_ACCEPT_LANGUAGE あたりで使用言語の優先順位を判定して
各言語のサーバへリダイレクトしてるとか聞いたことある。
(例えば、一般的な日本語ブラウザでgoogle.comにアクセスしても、co.jpの方へ飛ばされる。とか)

>>726
「perl サブルーチン 引数」とか「perl shift」とか。

731 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 14:19:56 ]
PerlとPHPはまったく別物なのでしょうか?関連性とかあるのかな、と。 
その辺のことよく知りません。


732 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 14:35:03 ]
>>731
ないから諦めてください

733 名前:713 [2008/09/08(月) 15:19:52 ]
>>717-722
皆様ありがとうございます。
>>730
そうなんですか…。
じゃあ日本語を検索した際、プログラムで手動と同じ検索結果を出そうとするのは事実上困難って事ですよね…。
わかりました。
ありがとうございます。

734 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:25:32 ]
どういう通信するか観察してきちんと真似てやればなんとかなると思うけどね。

735 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:19:48 ]
>726
どこらへんも何も、普通に引数を渡してるだけだぜ?



736 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:59:04 ]
配列から指定の要素番号を抜き出して、
削除するってできるの?

popの要素番号指定版。

$number = pop @array[5];

みたいな。@arrayの要素番号5が抜き出されて
$numberに入り、なおかつ
@array[5]は消え去る。

737 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:25:25 ]
>>735
つsplice

738 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:34:02 ]
>>737
>>736

739 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:44:23 ]
>>39お願いします

740 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:01:37 ]
>>738
頭から1行ずつ読めばそのうち任意の行に到達するよ。


741 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:05:42 ]
ところで>>713はなにをやっているの?
CGIでもないようだし、
にも関わらずWEBのデータ-を取ってきて
なんか遊べるようだが、これって
なんで名前なの?
どういう本にのってるの?

742 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:18:37 ]
>>741
perl スクレイピング
でぐぐれ

743 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:27:08 ]
へーこんな用語があったんだ。
初めて知ったわ。

俺の書いてきたPerlスクリプトは9割がスクレイピングだー

744 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 00:30:41 ]
オライリーからも本出てるよ。
俺の初めて書いたperlはそれの第一章とかだった気がするw

745 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:00:44 ]
#------------------1

my @a=(1..10);
map {$_ = $_ *2} @a;
print "@a\n";

#--------------------1
#--------------------------
#-----------------------2
my @a=(1..10);
map {$_ = $_ *2} (@a);
print "@a\n";
#------------------2

↑これ、1も2もどっちも
実行できるんだけど、mapの配列の()パーレンは
必要ないってこと?



746 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:36:15 ]
●1
map {print $_,"\n" } 0..10;
これだとちゃんと1〜10が表示されるのに

●2
map {print $_,\n } 0..10;
これだとなぜかアドレスが出てしまう。
なんでだろう?

747 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 03:09:08 ]
my @a=qw(aaaaa bbb ccc ddd eee fff abf haty juy ade il erat tyu dfg gu );

my @b=grep {$_=~'a'} @a;
print "@b\n";

#---------------------------------------
grepのときに、スマートマッチ〜〜使えないのか。

my @a=qw(aaaaa bbb ccc ddd eee fff abf haty juy ade il erat tyu dfg gu );

my @b=grep {$_~~'a'} @a;
print "@b\n";
#--------------------------------
↑これだとエラーが出る。=〜にしないとだめらしい。

748 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 03:53:32 ]
my %hash;

$hash{name}='john';
$hash{age}='25';
$hash{city}='london';

print "@{[%hash]}\n";

↑なんでこれでハッシュの中味が出力されるの?

749 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 04:03:47 ]
何故〜なの?という質問のときは、
「自分は○○されると想ったのに」と付け加えるとアドバイスしやすい。

750 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 04:24:40 ]
@{[%hash]}

これの記法がまったく意味がわからん

751 名前: ◆TWARamEjuA mailto:sage [2008/09/09(火) 06:59:06 BE:980633-2BP(7089)]
(grep 1, each %hash)

かな?

752 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:38:24 ]
何年ここにいて、そんな頓珍漢な解答をする? > クソコテ
実行結果すら合わねえじゃねえか


753 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:39:16 ]
jp.youtube.com/watch?v=PIyzRW7L6eY&feature=related
これの最後のやつがちょっと意味わかんないかも。

mapの lcの組み合わせたやつ。

754 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:44:28 ]
$words="a title of a webpage";
$words = join ' ', map {ucfirst lc} split / /,$words;

print "$words\n";


↑これね。

755 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:47:38 ]
>>754
1. スペースで split => 単語毎になる。
2. lc $_ で全部小文字($_ の表記省略)
3. 2. の結果を ucfirst で一文字目だけ大文字化。
4. スペースでくっつける



756 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:00:27 ]
>>736
my $index = 2 ; # 抜きたいindex
my @dat = qw( 1 2 3 4 5 6 ) ;
push @dat, ( splice @dat, $index )[1.. $#dat - $index] ;
print @dat ;

定番

757 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:03:04 ]
>>750
%hash をリストと見做して [] にて無名配列へのリファレンスに突っ込む。
@{} にてそのリファレンスをデリファレンス。

758 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:04:38 ]
>>756
$numberが…
二行に分ければ済む事だけど

759 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:27:14 ]
jp.youtube.com/watch?v=xBTsQ6e7gXY&feature=related
これって何やってるの?

760 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:56:00 ]
>>740
了解しました。
一気にその行に行く方法はないんですね。

761 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:24:25 ]
>760
配列にでも突っ込めば?

762 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:42:21 ]
>>760
あらかじめ各行の先頭位置を別に記録してあればseek一発だが、そういう
準備がされてなければ頭から読むしかないね。なにもないときは頭から
改行を頼りに行数を数えるしか何行目か知る方法はないのです。

763 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:04:15 ]
>>761
行数が多い場合、コストが高そうな気がして。。。

>>762
やはりそうですか。
どもです。

764 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:22:23 ]
yyyymmddの日付を比較したいのですが
どうすれば一番簡単ですか

765 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:48:42 ]
比較だけなら、そのまま比較すれば意図した通りの結果になるんじゃない?



766 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:38:26 ]
ディレクトリの中にファイルがあったら
ディレクトリを空にする、という処理をしたいのですが

if(-e "$path/"){
削除処理
}
みたいなものだと、ディレクトリそのものが認識されて
ファイルを認識してくれません

どうすりゃええんでしょうか


767 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:40:18 ]
>>766
ディレクトリを読んでファイルがあるかどうか調べるといいよ。

768 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:57:02 ]
opendirあたりでヤルしかないですか
遠回りだと思ってたけどそれが一番なのかな


769 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:02:59 ]
グロブ使えよ。
中作業だろ。

770 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:05:57 ]
File::Slurpのread_dirが便利

771 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:17:50 ]
これじゃダメ?

if(<$path/*.*>){
削除処理
}

772 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:45:39 ]
>>769
グロブの使い方がわからないであります

>>770
多分はいってないです

>>771
ためしてみます

773 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:45:46 ]
5.10が動くレンタルサーバーってどこがある?

774 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 02:24:36 ]
事前に膨大な乱数表作っておいて、
substrだけで抜き出して会話するってできる?

775 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 05:35:12 ]
>774
どういうこと?



776 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 05:42:43 ]
my $a="g'oiaherugbapowirhaysrgpairhja]ierhgtauw[eifbgaeirhuecf[awierbawirt]aebm";
等の100万語ぐらいの膨大な量の乱数表みたいな
語句のリストをあらかじめ作っておいて、
「hello」って表示したい場合は
「5」番目と「7番目」と「12番目」を抜き出して
表示する」みたいな。

たまたま、うまくつながってるところを見つけると、
ポイントアップです。

777 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 05:43:46 ]
index と substrを組み合わせたゲームね。

778 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 06:04:15 ]
(1)
use feature qw( :5.10 );
my $t;
$t=localtime;
say $t;

-------------------------------
(2)
use feature qw( :5.10 );
my $t;
$t=localtime(time);
say $t;

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
(1)と(2)で、実行結果が変わらないのだが、なんで?
どっちでもいいの?
じゃあ、timeの立場は?

779 名前: ◆TWARamEjuA mailto:sage [2008/09/10(水) 06:58:15 BE:654023-2BP(7089)]
>>752
わはは!
描いて、全然ちゃうわ!と気が付いて投稿窓を閉じたつもりが送信されてたョ(呆)

780 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:03:36 ]
Perlの勉強するときに、実は
ものすごく脳力というか
エネルギー使うんじゃね?

漏れは30分か1時間もやると
ぐったりして集中力がなくなる。

読んでも頭に入らなくなる。

781 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:16:34 ]
>778
捨てハンでもトリッブでもいいから、なんか分かりやすい名前つけたらどうだ?
たぶん皆喜ぶぞ。NG指定するのに。

782 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 09:10:05 ]
じゃあアンケートとって
スレ住民の51%以上が賛成してたら
そうするよ。

783 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 10:28:58 ]
住人は>>781の一人だから賛成100%が可決。 俺は通りすがり。


784 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:27:20 ]
トリッブはねえよ

785 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 16:28:39 ]
>>782
50.4%が賛成だとアウトなのかが気になる



786 名前:デフォルトの名無しさん [2008/09/10(水) 19:11:24 ]
Perlで作ったツールをUSBメモリに入れて持ち運びたいんですが、
Perlの動作環境込みで持ち運ぶのは無理でしょうか?
テキストファイルの処理がメインでLinuxとActivePerlでの動作は確認しています。
しかしActivePerlがインストールされているWindowsマシンは少なく、
客先ではActivePerlのインストールも許されていない ので困っています。


787 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:19:03 ]
そのUSBに入れときゃいいやん

788 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:04:57 ]
>>786
「Perlで書いたツールを持ち歩きたいけれど、フルセットの実行環境は要らない」
PAR - Perl Archive Toolkit があなたのわがままを叶えてくれます。

789 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:13:34 ]
PAR の話は「perl.exe だけで足りるかもしれない」と伝えてからでいいんじゃないのか。

790 名前:788 mailto:sage [2008/09/10(水) 21:37:22 ]
>>789
ああ、もっともだね。先走りました。

791 名前:sage [2008/09/10(水) 22:17:56 ]
教えて下さい
windowsでperlを書いてるんですが
$dirName = "C:\\Documents and Settings\\Administrator\\My Documents\\新しいフォルダ";
@res = `"dir \"$dirName\""`;
を実行すると

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

となってしまします。どこがいけないでしょうか?

792 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:29:18 ]
(1) >>2をやっていない??
(2) ディレクトリ名にスペースがあるとエラーになる??

793 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:30:21 ]
>>2じゃなくて>>4だった。


(3)Perlでは日本語のフォルダ名を扱えない??

794 名前:sage mailto:sage [2008/09/10(水) 22:42:52 ]
>>792
説明が不足して申し訳ないです。。。
日本語のフォルダが大丈夫なのは確認済みです。
ディレクトリ名にスペースがあると上手くいかないんです。。。
>>4をやっても駄目でした。

795 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:58:31 ]
>>794
$dirName = '"C:\Documents and Settings\Administrator\My Documents\巨乳女子校生・公園で立ちバック"';
@res = `dir $dirName`;

スペースが入るときは "こう 囲んで 渡す" ってとこまでたどり着いてるのに惜しいな。
'これ' と "これ" の使い分けに慣れるといいよ。



796 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:24:02 ]
>>792,793
答えようとするのは良いけれど、
確信がないなら検証してからにしてくれ。
質問者が混乱するから。

797 名前:sage mailto:sage [2008/09/10(水) 23:56:44 ]
ご支援ありがとうございます。

>>795
教えてもらった方法で上手く出来ました。
ありがとうございます。

追加で申し訳ないのですが
>>791のコードでディレクトリ名を引数で渡したい場合はどうしたらよいでしょう?

やりたい事のイメージ:
%>perl test.pl "C:\Documents and Settings\Administrator\My Documents\貧乳女子高生・あばらで洗濯"

test.plの内容
$dirName = $ARGV[0];
@res = `dir "$dirName"`;

ちょっとまだ''と""の違いを正確に理解できていない様です。。。
'' => 文字をそのまま代入
"" => 変数を展開して代入
という認識なのですが他にも違いがあるのでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<239KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef