Perlについての質問箱 ..
856:デフォルトの名無しさん
08/09/14 10:09:26
>>853
認識が根本的に間違ってる。
() <= 無名アレイもしくは無名ハッシュ(状況によっては単なるリスト)
[] <= 無名アレイへの「リファレンス」
{} <= 無名ハッシュへの「リファレンス」
@arr = ( 1,2,3 ) ; する事によって初めて有名アレイ(んな言いかたするっけ?)と言える。
あくまでも@arrが有名アレイであって、(1,2,3) は単なるリストだ。
[ 1,2,3 ] は、() を省略してる。 [ (1,2,3 ) ]
{ 1,2,3,4 } は、略
文章の流れから、[] を無名アレイと言ったりする人もいるだけの事
857:デフォルトの名無しさん
08/09/14 10:16:04
>>856
事故レス
>() <= 無名アレイもしくは無名ハッシュ(状況によっては単なるリスト)
状況によっては => 厳密には
858:デフォルトの名無しさん
08/09/14 10:34:59
ふーん
デタラメ書くと親切にしてもらえるんだな
859:デフォルトの名無しさん
08/09/14 14:02:51
なぁ、、、
もしかして、ハッシュって、フラグの管理に便利に
使えるんじゃないのか...?
ダンジョンに入った→1
とか。
860:デフォルトの名無しさん
08/09/14 14:13:24
もしかしても何も無いだろ。
ハードコーディングでもするつもりなのか?
861:デフォルトの名無しさん
08/09/14 16:02:21
>>859
なんでもいいからモジュールのコード嫁
862:デフォルトの名無しさん
08/09/14 21:42:11
バカでかいファイルのアップロード処理で
URLリンク(www.bioinfo.jp)
ここに描いてるやりかたを使いたいのですが
よくわかりません
何か簡単な例でおしえてくだしあ
863:デフォルトの名無しさん
08/09/14 22:00:32
>>862
コメント入れてもたったの10行やん。
これ以上簡単な例?
864:デフォルトの名無しさん
08/09/14 22:04:33
use HTML::TreeBuilder::XPath;
my $html = '<html><head><title>foo & bar</title></head><body></body></html>';
my $tree = HTML::TreeBuilder::XPath->new;
$tree->parse($html)->eof;
print $tree->findvalue('//title');
このコードを実行すると、
foo & bar
と表示されるんだけど、
foo & bar
って結果を返すようにできない?
865:デフォルトの名無しさん
08/09/14 22:10:09
存在を忘れそうになるけど実体参照地雷はよく働いてるな
866:デフォルトの名無しさん
08/09/14 22:13:20
LWP::UserAgentとHTTP::Requestで簡単なhttpクライアントを作っています。
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => 'Wikipedia項目リンク');
$req->push_header('User-Agent' => 'Mozilla/4.0');
$ua->request($req);
を実行すると、パケットキャプチャの結果
GET /wiki/Perl HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Host: ja.wikipedia.org
User-Agent: Mozilla/4.0
という設定していない"TE"を含むリクエストを投げつけています。
この"TE"を含まないリクエストを投げたいときにはどのようにするのが簡単で自然でしょうか?
(パケットキャプチャをする都合上、圧縮はして欲しくないです)
ソースを読んだところ、LWP::Protocol::httpにてSendTE => 1という値を設定していて、
巡り巡ってNET::HTTP::Methodsでその値を参照して有効(1)ならば
push(@h2, "TE: deflate,gzip;q=0.3");
push(@connection, "TE");
をするという処理をしていました。
URLリンク(questionbox.jp.msn.com)
には
>LWP::Protocol::httpモジュールのソースファイル40行目付近を改造(SendTE => 1を0)し
とありますが、それだけはしたくないです・・・
867:864
08/09/14 22:51:46
あー、地雷踏んだ… もう1回。
use HTML::TreeBuilder::XPath;
my $html = '<html><head><title>foo & bar</title></head><body></body></html>';
my $tree = HTML::TreeBuilder::XPath->new;
$tree->parse($html)->eof;
print $tree->findvalue('//title');
このコードを実行すると、
foo & bar
と表示されるんだけど、
foo & bar
って結果を返すようにできない?
868:デフォルトの名無しさん
08/09/14 23:11:16
&をエスケープする...?
869:デフォルトの名無しさん
08/09/14 23:14:25
結果文字列を実体参照に変換すりゃいいんじゃね?
870:デフォルトの名無しさん
08/09/15 00:18:36
それしかないかなぁ。実態参照の種類たくさんあるから、できればやりたくないんだよなぁ。
871:デフォルトの名無しさん
08/09/15 00:31:53
そんなモジュールがCPANにあったりして。
872:デフォルトの名無しさん
08/09/15 00:40:39
わざわざ探さなくても HTML::Entities が入ってたりして。
873:デフォルトの名無しさん
08/09/15 01:01:13
>>866
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, ぽにょ => ぽにょ);
でオーバーライドできるって、宇宙からのテレパシーが言ってた
874:デフォルトの名無しさん
08/09/15 02:17:39
>>873
わーvarsってこんな風に使えるんですね!
瑠璃子ちゃん、電波、届いたよ!ありがとう!
875:デフォルトの名無しさん
08/09/15 07:58:28
>874
どう見てもバッドエンドフラグじゃねーか
876:デフォルトの名無しさん
08/09/15 09:27:05
>>873に便乗なのですが、LWP::Protocol::httpを見ると
sub _extra_sock_opts # to be overridden by subclass
{
return @EXTRA_SOCK_OPTS;
}
my $sock = $self->socket_class->new(PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp',
Timeout => $timeout,
KeepAlive => !!$conn_cache,
SendTE => 1,
★$self->_extra_sock_opts($host, $port),
);
という処理になっていますが、例えば
push(@LWP::Protocol::http::EXTRA_SOCK_OPTS, SendTE => 0);
としていた場合、★のところってどのように解釈されるのでしょうか?
特に$host, $portの解釈がよくわかりませんorz
877:デフォルトの名無しさん
08/09/15 10:07:17
>>876
# LWP::Protocol::http のソースは見ずに。
== 例 ==
use Data::Dumper ;
my @arr= qw( hoge foo ) ;
my %hash = ( hoge => 1, @arr, ) ;
print Dumper \%hash ;
== 例終り ==
これと同じで、@EXTRA_SOCK_OPTS ; で設定した key, value(SendTE => 0)
にて、デフォの挙動の key, value(SendTE => 1)が上書きされる。
>★$self->_extra_sock_opts($host, $port),
がどう解釈もくそも、まんま LWP::Protocol::http の内部サブルーチン呼んでんじゃん。
# $host,$port がどうにも謎なんだが
878:876
08/09/15 10:16:13
>>877
サブルーチン呼んでいるというのは分るのですが、自分の知識だと
># $host,$port がどうにも謎なんだが
が解決しないのです
879:デフォルトの名無しさん
08/09/15 10:20:27
再定義するとき必要になる情報列挙しといたんだろ。
880:デフォルトの名無しさん
08/09/15 10:44:16
>>878
「どうにも謎」と書いたが、それは「作者の意図が分らん」って意味であって
perl の挙動としては $host,$port 完全無視である事は明白。
881:デフォルトの名無しさん
08/09/15 11:56:08
おしえてくだしあ
wc -l ファイル名
でファイルの行数を取得したくて
$count = system("wc -l ファイル名");
みたいにしてるのですが、0が入ります
コマンドで取得した行数を変数にぶち込むのはどういうやり方でやるんですか
882:デフォルトの名無しさん
08/09/15 12:19:45
open使え
883:デフォルトの名無しさん
08/09/15 12:24:11
>>880
# to be overridden by subclass
これが作者の意図だろ。
サブクラスで使うかもしれない情報を渡しているだけ。
884:デフォルトの名無しさん
08/09/15 12:25:01
>>881
systemのマニュアルエントリに書いてあるお
885:デフォルトの名無しさん
08/09/16 00:28:39
>>881
`wc -l ファイル名`
886:デフォルトの名無しさん
08/09/16 03:58:16
my $ref_array = [10, 20, 30];
print "@$ref_array[1]\n"; ←1
print "$ref_array->[1]\n"; ←2
1と2で、どっち使うの?
887:デフォルトの名無しさん
08/09/16 05:19:04
my $a = "a";
print "$main::a";
これで何も表示されないのですが、
この時のmy $aは何パッケージに
なっているのでしょうか?
888:デフォルトの名無しさん
08/09/16 06:13:33
古い処理 → シンボリック レファレンス
新しい処理 → ハード レファレンス
古いやり方 → &をつけたサブルーチン呼び出し
新しいやり方 → ()をつけたサブルーチン呼び出し
古いやり方 → パッケージ
新しいやり方 → モジュール
、、、まだある?
889:デフォルトの名無しさん
08/09/16 06:44:35
$v="aaa";
$r="v";
print "$r\n";
print "$$r\n";
これが シンボリック レファレンス か。
キモイな。
890:デフォルトの名無しさん
08/09/16 07:09:33
アロー演算子は
デリファレンスの時と
オブジェクト指向のときと、
二つの場合で使われるの?
891:デフォルトの名無しさん
08/09/16 08:13:10
モニタのインチ数を指定すると、画面の縦横サイズを
出力するスクリプトを書きたいのですが、どうしたらいいでしょうか?
my $in = 19; # 指定されたモニタのインチ数
my $rt = 2.54; # 一インチは2.54センチメートル
my $a; # これを求めたい
my $x = 4; # 横の比率
my $y = 3; # 縦の比率
# 三平方の定理
# $in**2 = (($x*$a)**2)+(($y*$a)**2)
# $in = ((($x*$a)**2)+(($y*$a)**2))**(1/2)
892:デフォルトの名無しさん
08/09/16 08:15:49
↑>>891の続き
$in から $a の値を導き出すことが出来たら、
縦横サイズをセンチメートルで出力するのは簡単なのですが、
式の整理が上手くいかず躓いています。
もし宜しければご教授お願いいたします。
893:デフォルトの名無しさん
08/09/16 08:22:57
↑>>892の続き
自己解決することが出来ました。
4:3モニタの場合は、インチ数である対角線の比率が5、
16:9モニタの場合は、18.36になるようです。
894:デフォルトの名無しさん
08/09/16 08:54:26
多次元配列とか使わないでも
MySQLとかで解決したほうが速いよね?
895:デフォルトの名無しさん
08/09/16 09:43:18
URLリンク(kabocha.org)
このページわかりやすいね。
896:デフォルトの名無しさん
08/09/16 10:09:05
regex::ってなに?
正規表現をかんたんにするためのモジュール?
897:デフォルトの名無しさん
08/09/16 10:29:14
Perl Tutorial 93 - Arrays of Arrays
URLリンク(jp.youtube.com)
これちょっとごちゃごちゃしてて
よくわからんなー
898:デフォルトの名無しさん
08/09/16 11:14:56
つか、perlで$aと$bは普通の変数として使うな。
899:デフォルトの名無しさん
08/09/16 12:24:20
>>887
myで宣言された変数はレキシカル変数といい、パッケージ変数とは別物。
レキシカル変数は、パッケージに属するのではなく、レキシカルスコープに属する。
900:デフォルトの名無しさん
08/09/16 15:25:09
>>899
でもメインパッケージの中に属しているわけだから
$main::aで表示できるはず、、、、
ってなにか変なこと言ってます?
901:デフォルトの名無しさん
08/09/16 15:25:58
もしかしてこないだやってた議論と
本質的に同じ?
902:デフォルトの名無しさん
08/09/16 15:35:53
タダの自演
903:デフォルトの名無しさん
08/09/16 15:48:35
>>900
$main::aとすると、mainに属するパッケージ変数を参照することになります。
my $a は、レキシカル変数であり、パッケージ変数ではないです。
パッケージ変数を作りたければ、
our $a;
と、宣言しましょう。
904:デフォルトの名無しさん
08/09/16 15:59:20
ふーん
デタラメ書くと親切にしてもらえるんだな
905:デフォルトの名無しさん
08/09/16 18:09:55
sortでハマるんですね。わかります。
906:デフォルトの名無しさん
08/09/16 18:26:56
独り言書かなきゃ死ぬ人と教えなきゃ死ぬ人で需給が成り立ってるから
sort でハマっても解決される仕組みになってるはず。
いろいろループしてますよね。>>541>>562-563
907:デフォルトの名無しさん
08/09/16 18:50:20
教えなきゃ死ぬ人はあまりにも少なく、あまりにも短命。
908:デフォルトの名無しさん
08/09/16 20:17:56
「初心者がPerlを頑張るblog」みたいなのを開設したら
結構な面白いサイトになりそうなのが惜しまれる
909:デフォルトの名無しさん
08/09/16 20:48:04
こいつはだめだろ。全然成長していない。
リア厨かと思ってたけど、昼間も書き込んでるんだな。
910:デフォルトの名無しさん
08/09/16 22:31:08
その話題も既出
911:デフォルトの名無しさん
08/09/17 00:13:58
ファイルの一番外側に見えない { } があると思うと良いんじゃないかな。
{
my $a = "a";
}
912:デフォルトの名無しさん
08/09/17 02:42:47
じゃあどこの会社のブログで
開設したらいいか調べてよ
アクセス解析ないとやだけど。
できればアパッチの生ログに近い感じで
見れるとこ。勝手に統計的にまとめて表示
するのはだめ。
それとアホがきたときにはきちんと
アク禁できること。
これが条件。perlお得意のムーバブルタイプで
対応できる?
913:デフォルトの名無しさん
08/09/17 07:42:44
URLリンク(kabocha.org)
クロージャーの説明読んだが、さっぱりわけが
わからんな。
もしかして、最新言語だったら、
オブジェクト指向でやるようなことなのか?
914:デフォルトの名無しさん
08/09/17 08:30:44
>912
何時何分何秒、地球が何回まわったときなのか答えろよ!
って反論する小学生を思い出した
915:デフォルトの名無しさん
08/09/17 11:04:08
(1)
型グロブと、グロブって違うものだよね?
(2)
グロブって普通に使うものなの?
916:デフォルトの名無しさん
08/09/17 11:45:52
perlの予約語一覧ってどこにあるの?
getkeyが予約語かどうか、知りたいんだが。
917:デフォルトの名無しさん
08/09/17 11:55:11
ぐぐったらわかった。
予約語じゃないってさ。
なんか、perlのマニュアルに載ってるらしい。
mapの使用例として。
918:デフォルトの名無しさん
08/09/17 13:19:23
スペースキーを押したら
メッセージを出す、ってできないの?
919:デフォルトの名無しさん
08/09/17 13:35:25
今、レファレンスの勉強をしているんだが、
$a=1;
こうした時に、$aには何が
入っているのか?
1がはいっているのか、あるいは
1のアドレスが入っているのか。
あるいは、1のアドレスを指し示した物が
入っているのか。
920:デフォルトの名無しさん
08/09/17 13:41:16
1だろ。
あと$a,$bはsortが使うので以下略
921:デフォルトの名無しさん
08/09/17 13:43:50
>>920
だってレファレンスの解説サイト見たら
「違う」って書いてあったもん
922:デフォルトの名無しさん
08/09/17 13:46:42
$a = \1;
923:デフォルトの名無しさん
08/09/17 13:50:37
y///
↑なにこれ。
入門書にのってないんだけど。
924:デフォルトの名無しさん
08/09/17 14:13:09
レファレンスなの?
リファレンスなの?
925:デフォルトの名無しさん
08/09/17 15:58:22
バファレンス
926:デフォルトの名無しさん
08/09/17 16:57:33
>>923
>sed の信仰者のために y が tr の同義語として提供されています。
だそうです。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4404日前に更新/239 KB
担当:undef