【勉強するのは】PHPとPerl【どっちが最初?】 (404レス)
1-

192: 2007/09/11(火)08:36 ID:??? AAS
PHPフレームワーク Zend Framework入門 (単行本)
外部リンク:www.amazon.co.jp
193: 2007/09/11(火)16:48 ID:STk5D3wI(1) AAS
>>183
ポインタは覚えられませんが、 スコープは覚えられます。
194: 2007/09/11(火)17:14 ID:??? AAS
Perlのリファレンスはポインタと同じようなもの。C学習者がポインタが分からず離脱するように、Perl学習者もリファレンスを理解できるかどうかが最初の壁。
195: 2007/09/11(火)18:58 ID:??? AAS
Perlでリファレンス(ポインタ)を使う場面は少ないと思うが?
196
(1): 2007/09/11(火)19:02 ID:??? AAS
まさか。
Perlを知らないのかも知れないけど。
PHPのarray(1,2,array(3,4))は、Perlだと(1,2,[3,4])。(1,2,(3,4))とは別物だよ。
197: 2007/09/12(水)01:49 ID:??? AAS
AA省
198: 2007/09/12(水)02:28 ID:??? AAS
配列しか受け取れないというか、すべて配列として評価されるってことな。
確かに他の言語とは違ってるので、奇妙な感じはする。
しかし、非固定数個の引数を渡すときはそっちの方がいいだろ。
JavaとかPHPで非固定数個の引数は扱いが不自然だ。
PHPの配列がLinkedHashMapしかないことは初心者向けとしてはいいが、その分速度を犠牲にしてるしな。
199: 2007/09/12(水)09:20 ID:??? AAS
>>196
あーそれもポインタっていうのか。
↓こっちのことかと思ってた。
$pointer = &$source;
int* p = *s;
//↑こんな書き方であってたっけ?もう10年ぐらいCは触って無いなぁ
200
(1): 2007/09/12(水)14:24 ID:??? AAS
Cとは記号が違うだけでやってることは同じ。
@a = (1,2,[3,4]);
$p = \@a;
print @$p->[2]->[0],"\n";
201
(2): 2007/09/13(木)12:59 ID:??? AAS
>>200みたいな、ソース見ると萎える...

perl使いな奴らって、判りにくいソース書いて『お前、こんな簡単なのも理解できね〜のかよ!』って感じで
見下した態度がムカつく。

せめて、変数名だけでももう少し判りやすくしてくれないの?
202
(1): 2007/09/13(木)14:08 ID:??? AAS
変数名はどの言語でも同じだろ、
慣習とか無視してアホな変数名つけるやつはどこにでもいる。
それより引数の受け取りであまりにもいろんな書き方ができるのが萎える。
あとオブジェクトの導入部なんとかしてほすい

($proto, @args) = @_;
$class = ref $proto || $proto;
$parent = ref $proto && $proto;
$argref = ref $args[0] eq 'HASH' ? $args[0] : {@args};
$self = bless $argref, $class;

↑こんな回りくどいコード書かなきゃならない糞言語です、Perlは
203
(2): 2007/09/13(木)14:35 ID:??? AAS
>>201
PHPでも同じ事が出来てコードもほとんど一緒だよ。
deep structure、参照渡し、デリファレンスを説明するのに簡潔で分かりやすい例だと思うけど。
204: 2007/09/13(木)22:01 ID:??? AAS
>>201
単なるサンプルコードにそんなこと言われても。一応arrayだから@a、pointerだから$pなんだが。
それにこのコードはPerlの多次元配列操作の基本で、これが理解できないということはPerlでプログラミングできないというのと等しいんだが。
205: 2007/09/13(木)22:03 ID:??? AAS
>>202
子飼のブログからコードをコピペしたんだろうけど、
それは「Perlは非常に豊富で柔軟な言語機能を持ち、わずか数行でこんな多機能なオブジェクトを作れます」という解説をするために書かれた物。
実際にはそんなコードを書くことはまずない。
206
(1): 2007/09/13(木)22:08 ID:??? AAS
>>203
PHPでは出来ないよ。PHPで出来るのは参照渡しだけ。
もっともリファレンスは、Perlのリストがフラットにしかデータを格納できないというデメリットでもあるわけで、PerlとPHPどっちがいいかは分からない。
ただ、より低レベルな操作が出来る(強いられる)Perlの方が結果的に表現力が高いと思う。
207: 203 2007/09/13(木)22:27 ID:??? AAS
>>206
$a = array(1, 2, array(3, 4));
$p = &$a;
print $p[2][0]."\n";

$p[2][0] = 1;
print $a[2][0];
---結果---
3
1
----------
省1
208: 2007/09/14(金)03:16 ID:??? AAS
#!/usr/bin/perl

use Data::Dumper;

@arr = (1,2,3);
$ref = \@arr;
undef @arr;

print Dumper \@arr;
print "----------\n";
print Dumper \@{$ref};

これの実行結果が、
省3
209: 2007/09/14(金)03:17 ID:??? AAS
<?
$arr = array(1,2,3);
$ref = &$arr;
unset($arr);
var_dump($arr);
print "----------\n";
var_dump($ref);

これの実行結果が、

NULL
----------
省8
210: 2007/09/14(金)13:04 ID:??? AAS
多次元配列とか、リファレンスとかは、PHPの方が判りやすいと思う(アタマ悪りぃ折れにとっては...)。

でも、メモリー効率(?:言葉合ってるか?)は、Perlの方がいいんだよね。

データベース絡みのプログラムすると実行パフォーマンス気になる。
211: 2007/09/14(金)22:17 ID:??? AAS
データベースがらみになると、パフォーマンスに関係する処理は、
ほとんどデータベース内で終わってしまうのであまり気にするまでもない。

phpで操作するのは画面に表示されるデータ(せいぜい100件程度でしょ?)ぐらいだから。
1-
あと 193 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s