トップページ⇒tech
267コメント68KB

Perlの特殊変数は氏ね。絶対に使うな。可読性下がる

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/03/10(金) 20:08:30
はげどう
0153デフォルトの名無しさん2007/10/25(木) 00:07:20
範囲演算子ってそんなのにも使えたのか…
0154デフォルトの名無しさん2007/10/25(木) 04:55:28
ふつーは、そんな変な書き方しないから大丈夫じゃね?
0155デフォルトの名無しさん2007/10/25(木) 06:52:47
>>154
下の奴は強制的にエラーさせてるけど。
perl -w -le 'print scalar (1..99)'
Use of uninitialized value in range (or flip) at -e line 1.

「範囲演算子がスカラーコンテキストで評価される時に
実数が記載されていると暗黙の内に$.と比較される」

範囲演算子をふつーに使ったつもりでも、知らなきゃハマるエラー。
0156デフォルトの名無しさん2007/10/25(木) 12:15:15
>>152
while( <> )の部分がまだ、省略されたままだぞw
0157デフォルトの名無しさん2007/10/27(土) 11:11:11
今はpython厨の俺がやってみる
while (<>) {
    print if 1..10;
}
これを省略なしで書き直す

unshift(@ARGV, "-") if @ARGV == 0;
while ($ARGV = shift(@ARGV)) {
    unless (open($fh, $ARGV)) {
        warn "Can't open $ARGV: $!\n";
        next;
    }
    $NR = 0;
    while (defined($line = readline($fh))) {
        $NR += 1;
        if ($NR == 1) { $flag = true; }
        if ($NR == 10) { $flag = false; }
        if ($flag) { print $line; }
    }
}
0158デフォルトの名無しさん2007/10/27(土) 11:13:22
s/true/1/g;
s/false/0/g;
でおねがいします
0159デフォルトの名無しさん2007/10/27(土) 15:08:18
while (<>) { print if 1..10; }

my $NR = 0;
unshift(@ARGV, "-") unless @ARGV;
while (my $ARGV = shift(@ARGV)) {
    unless (open(FH, $ARGV)) {
        warn "Can't open $ARGV: $!\n";
        next;
    }
    my $flag = 0;
    while (defined(my $line = readline(*FH))) {
        $NR += 1;
        if ($NR == 1) { $flag = 1; }
        if ($NR == 10) { $flag = 0; }
        if ($flag) { print $line; }
    }
}
0160デフォルトの名無しさん2007/11/12(月) 15:57:58
>>123
ワロタ
絶対わかんねーw

・@ARGの@って何?
・shiftって何?
・! って何
・$arg1の$って何?

固有の問題がありすぎ
0161デフォルトの名無しさん2007/11/12(月) 16:02:50
>>145
Javaが読みにくいってのは不思議に感じるが、
やっぱり、言語仕様により記述性が低いのと、使う人によりけりってところが大きいためだろうか?

Javaとか、C#って、かなり読みやすい言語だと思うが
まあ、C言語らに比較してってところだが・・・
0162デフォルトの名無しさん2007/11/12(月) 16:25:46
class HelloUnko {
 public void main(String[] args) {
   System.out.println("ハロー\nうんこ!");
 }
}

ワロタ
絶対わかんねーw

・class って何?
・{ って何?
・String[] の[]って何
・publicって何?
・\nって何?

固有の問題がありすぎ
0163デフォルトの名無しさん2007/11/12(月) 16:27:10
>>162
知らないんなら入門書を読んで勉強しろよ!
おのれの無知を自慢するんじゃ無ぇ!
0164デフォルトの名無しさん2007/11/12(月) 16:37:09
>>163
160のくだらなさをわかりやすく翻訳してあげてるだけでは?
しかも、!が「Perl固有の問題」なんだそうだよw
0165デフォルトの名無しさん2007/11/12(月) 17:28:15
ものの例えだけどさ、 google で[ string ] を検索すると
 String (Java 2 プラットフォーム SE v1.4.0)
 文字列(String)
 ・・・
みたいなのがたくさん引っかかってくれる。
それ読めば理解できるよね。

じゃ、google で[ $ ] を検索してみてごらん?
何も表示されないだろ?
(オバカさんのために言っとくけど、string と $ が同じ意味って事じゃ無いよ。ただの例だよ。)

だから特殊変数って嫌われるのだと思う。情報を得にくいだね。

でもさ、入門書を読めば誰にでもわかる事ジャン。
読まない、読んでも理解できない/覚えられない。
そんなヤツが特殊変数をバカにしてるだけ。
おのれの知能の低さをアピールしてどうすんだ?
0166デフォルトの名無しさん2007/11/12(月) 17:31:23
可読性の話から、いつしか言語習得の過程話に。
0167デフォルトの名無しさん2007/11/12(月) 18:49:32
じゃおまいさんの言う 「可読性」 ってのは、いったい何よ?
0168デフォルトの名無しさん2007/11/12(月) 18:50:29
ローマンアルファベットで書かれていること。
0169デフォルトの名無しさん2007/11/12(月) 18:54:41
 $

「ドル」 または 「ダラー」 と読む。

なんだ、これくらいも読めんのか。
0170デフォルトの名無しさん2007/11/12(月) 19:02:06
バカ発見
0171デフォルトの名無しさん2007/11/12(月) 19:16:56
【レス抽出】
対象スレ: Perlの特殊変数は氏ね。絶対に使うな。可読性下がる
キーワード: use English

抽出レス数:2
0172デフォルトの名無しさん2007/11/12(月) 19:28:07
perlはハッカー
ヘボグラマが使っていいものではない
0173デフォルトの名無しさん2007/11/12(月) 19:32:03
>>168
COBOLかよ。
0174デフォルトの名無しさん2007/11/12(月) 19:39:43
>>117
機械語でプログラミング
0175デフォルトの名無しさん2007/11/12(月) 19:49:33
特殊変数って一行野郎の為にあるんだと思う
0176デフォルトの名無しさん2007/11/12(月) 22:49:57
結局、可読性が下がるって言うヤツってさ、こういうことだろ?

 ・array → 「アレイ」と読める。
 ・@ → 読めない。

ヴァカまるだしじゃん。@は「アットマーク」って読むんだよ〜〜ん!
ハッキリ言って Perl 以前の問題。それくらい読めるようになっておこうね。
0177デフォルトの名無しさん2007/11/12(月) 23:12:16
・array → 「アレイ」と読める→あ、配列なのか
・@ → 「アットマーク」と読める→ハァ?
0178デフォルトの名無しさん2007/11/12(月) 23:16:58
>>177
まぁ、実際そういうレベルで「読めない」って言ってる馬鹿が殆どだろうね。
0179デフォルトの名無しさん2007/11/12(月) 23:40:15
use Engrish
特殊変数を和製英語化して読み易くする。
0180デフォルトの名無しさん2007/11/13(火) 00:17:30
>>178
いや、読めてないんじゃなくて読めてるんですよ?
0181デフォルトの名無しさん2007/11/13(火) 00:28:50
>@
@はarrayの「ア」。
超覚えやすいので、まったく問題ない。
0182デフォルトの名無しさん2007/11/13(火) 00:33:41
他人の問題に共感出来るようになるよう努力しましょう
0183デフォルトの名無しさん2007/11/13(火) 09:33:35
>>180
読めてるかどうかではなく、そういうレベルで「読めない」と言ってる馬鹿が殆どだろうという話。
0184デフォルトの名無しさん2007/11/13(火) 19:36:12
>>183
あぁ、単に馬鹿って言いたいだけか。
0185デフォルトの名無しさん2007/11/13(火) 20:31:30
>>184
残念ながらそれは性格ではなく頭の悪いレスです。
0186デフォルトの名無しさん2007/11/13(火) 20:36:55
>>185
そのレスは 183 の為に取っておいてあげてくれ
0187デフォルトの名無しさん2007/11/13(火) 20:46:39
>>186
うんこみたいな切り返しに走らなくていいです。
0188デフォルトの名無しさん2007/11/13(火) 21:10:03
下品な言葉が好きな奴はだいたい似た様な行動パターンをするね。
結局、単にうんこって言いたいだけ。
0189デフォルトの名無しさん2007/11/13(火) 23:55:58
@hoge の @ は array の a
$fuga の $ は scalar の s

ヘタなハンガリアンより分かりやすい。
0190デフォルトの名無しさん2007/11/14(水) 00:00:37
スカラー変数という用語も馴染みが無いんじゃないかな。
0191デフォルトの名無しさん2007/11/14(水) 00:17:20
% <- これは?
0192デフォルトの名無しさん2007/11/14(水) 00:43:57
>>191
左上の○を除けばhashのhに見えん事もない、、、から採用したんじゃねw
0193デフォルトの名無しさん2007/11/14(水) 02:46:51
>>190
なじみのない俺涙目
0194デフォルトの名無しさん2007/11/14(水) 04:18:11
おいおい、マジで?スカラーとかベクトルとかって、たしか中学校で習うよな?
工業高卒のオレでさえ知ってるんだからたぶん間違いない。

スカラーは馴染みがない・・・なんて言ってたらキリが無いぜ。
クラスは馴染みが無い、ファイナルは馴染みが無い、ガベージコレクションは馴染みが無い・・・
もう、100個くらい出てくるぜ。

結局さ、わからないことがあっても調べない、勉強しない、本読まない。
読んでも覚えられない、すぐ忘れる。
そんなヤツのたわごとだね。
0195デフォルトの名無しさん2007/11/14(水) 09:24:52
ホント読解力が無いな。スカラー自体は誰だって知ってるだろ。
0196デフォルトの名無しさん2007/11/14(水) 12:48:29
>>188
「パターンをする」なんて日本語は無いよ。
0197デフォルトの名無しさん2007/11/14(水) 13:19:28
>>191
パーセントパーセントパーセンパーセハーシュハッシュ

ということでハッシュ。
0198デフォルトの名無しさん2007/11/14(水) 13:59:20
>>191
真相は知らないけど、俺は自分なりに

・残った他の記号には、他の言語による「意味」がもっと色濃く染みついていて、
 %が一番「頭の中で起こる意味の上書き」が少なくて済む記号だった

というような事情に

・2つの要素が対になって収まっているかのようなビジュアルイメージ

なんてのが加わって決まったのかなぁ、と自分なりに推測してた。
0199デフォルトの名無しさん2007/11/14(水) 19:02:38
PerlよりPowerShellのほうがやばくないか?
0200デフォルトの名無しさん2007/11/14(水) 19:46:18
どうやばいの?
0201デフォルトの名無しさん2007/11/15(木) 21:43:13
>>191
どこかで「スラッシュの左上の○がキーで、右下の○が値、という二つの値の組になっている」とかいうのを見たような気がする
0202デフォルトの名無しさん2007/12/08(土) 16:28:57
jgfjgjgj





yttrytry





uiuyiuyi




teett




jgfjfgjf




iyiyti

0203デフォルトの名無しさん2007/12/24(月) 00:02:45
>>189
俺がわかんねー(というか、慣れない)のは、
arrayなのに、$つけたりするじゃん?arrayなら、最後まで、@で通せよって思うんだが、
あげくのはて、%つけたり
0204デフォルトの名無しさん2007/12/24(月) 00:06:40
晒しage
0205デフォルトの名無しさん2007/12/24(月) 00:12:40
>>197
壷ったw
0206デフォルトの名無しさん2008/01/09(水) 12:06:39
>>203
> arrayなのに、$つけたりするじゃん?arrayなら、最後まで、@で通せよって思うんだが、

それで、正しくは$使うべきなのに@のままでも大抵上手くいってるんだよな。
0207デフォルトの名無しさん2008/01/09(水) 13:46:49
不要な配列スライス書いてるのを見るとどうしても、
『マジカル頭脳パワー』のスペシャル版で所ジョージが一人で「本命チーム」やってたのを
思い出すんだ。
0208デフォルトの名無しさん2008/01/11(金) 06:45:15
>>207
「本命チーム」ワロタ
所ジョージの正解率は異常
0209デフォルトの名無しさん2008/01/11(金) 18:07:03
>>203
Perl6使えw
0210デフォルトの名無しさん2008/01/12(土) 23:04:12
Perl6は、Perlじゃない気がするw
Ruby使いのおれがいうんだから間違いない
0211デフォルトの名無しさん2008/01/15(火) 00:03:55
% がハッシュなのは、一番基本的なハッシュ算出が
hash_key = value % 適当な値
だからじゃね?
% は剰余演算子。
0212デフォルトの名無しさん2008/01/15(火) 00:10:36
歴史的に、スカラー変数は何でスカラーって名前になったの?
まさかベクターじゃないからとかじゃないよね?
0213デフォルトの名無しさん2008/01/15(火) 00:14:28
最初はスクルトだったんだけど単体用に・・・
0214デフォルトの名無しさん2008/01/15(火) 06:06:59
ベクトル(ベクター)
 大きさと方向であらわされる値。
 $a[1] = 10;
 のような場合、[1] という位置情報と 10 という絶対値を保持している。
 まさにベクターそのもの。
 ただし、perl では「ベクター変数」という言い方はしないで、フツーに「配列」と言う。

スカラー
 大きさ(絶対値)だけ。方向は無い。
 $n = 10;
 のような場合、10という絶対値のみを保持している。
 まさにスカラーそのもの。

ちなみに java では
 Vector ----- 配列
 Hashtable ----- 連想記憶(perl で言う ハッシュに相当)
がある。
(ただし、java では「スカラー変数」という言い方はしない。)
0215デフォルトの名無しさん2008/01/15(火) 07:45:53
>>214
それはさすがに無理がある
0216デフォルトの名無しさん2008/01/15(火) 08:04:01
Fortran でもスカラー変数と呼ぶのね
0217デフォルトの名無しさん2008/01/15(火) 11:26:43
>>214
位置情報はひとつの数値(またはスカラー)で表せるのか?
0218デフォルトの名無しさん2008/01/15(火) 11:30:54
一次元の位置だろ。x軸上の位置みたいな。位置=二次元と思うな。
0219デフォルトの名無しさん2008/01/15(火) 12:17:20
いや、二次元とは思わないし、一次元とも思ってないんだけど。
なんで一次元に限定されるんだ?
0220デフォルトの名無しさん2008/01/15(火) 19:15:39
>>217
実際にあらわしているだろ。[1] というのが位置だ。
10 という大きさが [1] という位置に格納されているわけだよ。

物理学のベクトルは、「向き」と「大きさ」だろ。
向きは30度とか45度とか、1つの数値であらわせる。
キミは 30度が理解できて [1] が理解出来ないのか?
0221デフォルトの名無しさん2008/01/15(火) 19:23:47
つうか、4則演算と関係ないものをスカラーと読んでる時点で、
数学のスカラーとは、「雰囲気」程度の類似しかないと思う。
hashtableをハッシュと読んじゃうのだって、はっきりいって無理あるし、
ほとんどが気分的な命名でしかないと思う。
0222デフォルトの名無しさん2008/01/19(土) 15:36:43
>>146の「出るのは顔文字」にワロタwwwwwwwwwwwwww
0223デフォルトの名無しさん2008/01/19(土) 15:51:46
試しにググったらホントに顔文字だったw
0224デフォルトの名無しさん2008/01/19(土) 17:59:10
顔文字プログラミング言語 perl
0225デフォルトの名無しさん2008/01/24(木) 01:49:46
おまいら
http://cfs.maxn.jp/neta/src/braincrash.pl

こんな読みやすいコードだってあるんだぞ
0226デフォルトの名無しさん2008/01/24(木) 02:02:54
>>225
どういういみでしょうか。今日パソコンばっかでよくわからないのでよかったらおしえてくださいおねがいします。
0227デフォルトの名無しさん2008/01/24(木) 02:22:28
>>226
スタイリッシュな書き方されてるじゃん
インデントもまともだし、strictだし












変態だけど
0228デフォルトの名無しさん2008/01/25(金) 12:22:20
Perlは氏ね。絶対に使うな。可読性下がる。
0229デフォルトの名無しさん2008/01/25(金) 17:53:41
↑
まだ @ や $ や % の読み方がわからないヤツがおるw
0230デフォルトの名無しさん2008/01/25(金) 20:39:48
ここは文系の巣窟なのか? いや、高卒者の巣窟か?
0231デフォルトの名無しさん2008/01/25(金) 23:50:33
君は大卒が自慢になる時代の人か?
一つ覚えで文系を馬鹿にすれば、
何かが得られると思ってるのか?
誰かを見下しているつもりでも、
自分を卑下してるだけなんだぜ
0232デフォルトの名無しさん2008/01/26(土) 01:51:29
>>230
Perl関係のスレに、専門教育受けた奴は来ないって。
0233デフォルトの名無しさん2008/01/26(土) 13:14:58
人間には慣れという適応能力があるではないか
0234デフォルトの名無しさん2008/01/26(土) 14:37:51
理工系の大学で1年か2年で学ぶ例のあれを知らない人しかいないスレなのか。
0235デフォルトの名無しさん2008/01/26(土) 19:40:36
もうそのネタ秋田
0236デフォルトの名無しさん2008/01/28(月) 22:50:35
そのネタ初耳
0237デフォルトの名無しさん2008/02/05(火) 15:26:37
正解は「理工系学部の女は不細工でも男に困らない。」
0238デフォルトの名無しさん2008/04/21(月) 07:49:19
perldoc perlvar
ってことなんだろうけど全特殊変数が長い解説で出てくるんだよな。気軽に
perldoc $_
とかやっても出ない。どうにかできんかな
0239マイク ◆yrBrqfF1Ew 2008/05/11(日) 14:50:37
Perlerが持ってる技術はhigh levelだな
0240デフォルトの名無しさん2008/05/11(日) 22:48:06
Perler って、まるでパチンコ屋みたいだな。
0241デフォルトの名無しさん2008/05/15(木) 18:22:42
$` と $' は、ASCII で普通の英語の文章を記述するとき
シングルクオートでかこむ部分を
`Matched' he said.
って書くのに由来してるのね。
0242デフォルトの名無しさん2008/06/22(日) 02:55:26

基本的によく使う特殊変数は、本来使われている
記号の意味と連携とれているからそんなに問題にならんよ。

にしても、試しに特殊変数でググったら、Perl関係が頭に
くるのは笑ったわ。

苦労している人は苦労しているのね。。
0243デフォルトの名無しさん2008/06/29(日) 16:30:44
$ + 1文字 の変数はマジで覚えられない…。
0244デフォルトの名無しさん2008/06/29(日) 19:23:15
無理して覚えなくていいよ。
よく使うヤツは自然に覚える。
使わないヤツを覚える必要は無い。
0245デフォルトの名無しさん2008/06/29(日) 19:46:43
他人のソースコードを読む時に困ったりしないの
0246デフォルトの名無しさん2008/06/29(日) 20:40:45
>>245
困るが、そもそも他人のコードは異次元w
コーディング規約がある仲間内はそうでもないけど、、、
formline ごりごり使われて、print $^A された時には(知らなかったのも手伝って)
ハマりまくったなあ。
0247デフォルトの名無しさん2008/06/29(日) 20:49:46
なるほど。特殊変数だけ気にしても仕方がないのか…
0248デフォルトの名無しさん2008/08/27(水) 03:59:47
$@とか$|、$_、$!ぐらいでいいんじゃない。後は必要になったときに調べればいい。
0249デフォルトの名無しさん2009/04/09(木) 20:48:38
あるある
0250デフォルトの名無しさん2009/04/15(水) 01:34:33
変数はともかく、printとか()で括りたくなる。
でも最もすぐれた言語。
0251デフォルトの名無しさん2009/04/15(水) 16:34:30
() で括りたくなる病に冒された人ですね。

コマンドラインでも
C:> COPY FOGE.TXT UNKO.TXT
じゃなくて
C:> COPY(FOGE.TXT, UNKO.TXT);
ってやってるんでしょうか。
あ、そっか。今どきコマンドラインなんて使わないんでしょうね。
マウスでクリックですよね。
0252デフォルトの名無しさん2009/04/15(水) 17:40:45
何と戦ってるんだろう
■ このスレッドは過去ログ倉庫に格納されています