Perlについての質問箱 63箱目 at TECH
[2ch|▼Menu]
[前50を表示]
650:デフォルトの名無しさん
17/02/09 22:22:13.62 4ZcYgl3B.net
>>626
perlはもう進化が止まってるので、あんまり新しいことは出来ない
自分で作るなら別だけど
rubyやpythonなら整ってる筈

651:デフォルトの名無しさん
17/02/09 23:43:38.97 NyKrJWYT.net
進化が止まっている #とは

652:デフォルトの名無しさん
17/02/10 07:05:20.49 SVdyXXtN.net
>>626
もう見てないだろうけど
HTML::TreeBuilder
HTTP::Daemon
LWP::UserAgent
WWW::Scripter
くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。

653:デフォルトの名無しさん
17/02/10 10:48:54.81 tdAYPVUl.net
最近はperlは余り聞かないな
中学生の時にはブームだったけど……。(何十年も前)
学校ではpython とかだと思う。C# java が主力?
とにかく、滅多に聞かないな

654:デフォルトの名無しさん
17/02/10 15:05:42.76 j8ygGIFR.net
Perlを罵倒したい人は、こちらにどうぞ
Perlについての罵倒スレ 63箱目
スレリンク(tech板)

655:デフォルトの名無しさん
17/02/10 22:06:13.34 +KYQgfiL.net
Perlは全然進化しないからな
一年ちょっと前に6がでて音沙汰なし
7はいつ出るんだ?って状態

656:デフォルトの名無しさん
17/02/10 22:29:17.89 pJ/oSP18.net
ナイスジョーク

657:デフォルトの名無しさん
17/02/11 09:59:05.70 pXj4BwQB.net
まともな学校はcだろ。

658:デフォルトの名無しさん
17/02/11 11:05:50.36 ffoIlYEu.net
実用性を重視するならJava一択

659:デフォルトの名無しさん
17/02/11 14:50:19.58 N4/UY6wx.net
>>639
6出てたのか?
知らなかったわ

660:デフォルトの名無しさん
17/02/11 15:18:36.75 p/3UeWk3.net
>>642
> 実用性を重視するならJava一択
それって言語の実用性じゃなくて
人材的な意味での実用性だよな
つまりJavaは色んな所で使われてる言語だから
Javaできますって言っておけば採用されやすい。
自分が実用性がある人間になりたいならJava一択

661:デフォルトの名無しさん
17/02/11 15:23:34.94 H7Znugc/.net
いい加減スレチ

662:デフォルトの名無しさん
17/02/11 15:50:08.46 ffoIlYEu.net
言語なんかいくつ修得してもいいんだから、大人しくJava勉強しとけ

663:デフォルトの名無しさん
17/02/11 17:33:33.41 tLczzgrK.net
何がなんだか仕様に混乱するから3つまでしか習得出来ません
4つめ覚えるとなにかを忘れます

664:デフォルトの名無しさん
17/02/11 21:11:41.56 y7nchZP8.net
621
> むしろなぜXPを使ってるのか知りたい
動作確認だよ
XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから
いちいち全OSを揃えて動作確認すると
シロウトの趣味でアプリケーション開発するには荷が重すぎる

665:デフォルトの名無しさん
17/02/11 22:46:04.81 p/3UeWk3.net
いちいち全OSで動作させたいと思う理由は何?
サポートが終了しているXPで動作する必要はないし
Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし
7と10で動作確認すればいいじゃん

666:デフォルトの名無しさん
17/02/11 23:02:42.86 ffoIlYEu.net
XPはまだ結構現役で残ってるぞ

667:デフォルトの名無しさん
17/02/11 23:33:55.67 p/3UeWk3.net
俺の周りに見たことない

668:デフォルトの名無しさん
17/02/13 12:16:27.67 vLa3XGqC.net
俺の周りでは、いまだにNT3.5.1を使ってる取引先があるのだが。

669:デフォルトの名無しさん
17/02/13 18:59:46.87 VKyPIbro.net
用途を特定した専用マシンみたいなのは、特にOSを入れ替えずにずっと使うな
測定機器や実験機器の一部とか、何かの制御用とか
ただ、そんなマシンは新しいソフトを入れたりもしないから、
互換性とかどうでもいい世界だけど

670:デフォルトの名無しさん
17/02/17 23:51:32.63 QUNiBjhs.net
以前こちらでお世話になった顔文字のど素人です。
$ perl -p -e 's/(..)/$1 /g;'
123456

12 34 56
恐縮ですが上記の逆(スペースの削除)をご指導願います。
00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6
    ↓
0006fc2558500a0054923103494688d0c6
よろしくお願いいたします _(_^_)_

671:デフォルトの名無しさん
17/02/18 00:14:42.65 eUOj9Lyv.net
>>654
s/\s//g

672:デフォルトの名無しさん
17/02/18 00:53:08.66 UURjaLCm.net
>>654
死んだ方がいいレベル

673:デフォルトの名無しさん
17/02/18 00:58:30.39 np+iCDRO.net
とにかく学習しようという気がまったく見えないのが凄い

674:デフォルトの名無しさん
17/02/18 01:09:34.78 oWVhdX8p.net
普通1時間以内に学習を完了してそうなものを、10日以上経ってるぞ

675:646
17/02/18 08:59:07.57 64GKa0+N.net
>>655
ど素人に有難うございました。

676:デフォルトの名無しさん
17/02/18 21:00:13.31 3ABB/Pla.net



677:セから土曜日に書いたと



678:デフォルトの名無しさん
17/02/26 10:31:20.73 cj/RoW+L.net
active perlで、長いファイル名のあるフォルダに対して readdir すると、
エラーになって止まるんだけど、どうやって回避すればいいんだ
エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、
とかが出来ない

679:デフォルトの名無しさん
17/02/26 10:39:23.76 OmTNhTRr.net
windowsのエラーじゃねぇの?
とりあえずevalすれば実行は止まらないと思うけど

680:デフォルトの名無しさん
17/02/27 08:34:03.50 hOw/b7i/.net
>>661
ひょっとして、ファイル名にユニコード文字が混じったりしてない?

681:デフォルトの名無しさん
17/02/27 08:44:24.40 hOw/b7i/.net
readdirのユニコード版なら、こうゆうモジュールもある。
URLリンク(search.cpan.org)

682:デフォルトの名無しさん
17/02/27 18:47:01.31 dx1g9tP+.net
unicodeは入ってない
単に長いだけ

683:デフォルトの名無しさん
17/02/27 22:36:40.65 8LXDZxYt.net
Win32::LongPathは?

684:デフォルトの名無しさん
17/02/27 22:51:51.90 dx1g9tP+.net
それを使うと、既存のreaddir の挙動が変わるの?

685:デフォルトの名無しさん
17/02/27 23:21:59.22 /TfvNrk0k
最大パス長260バイト制限に引っかかってるなら、
Win32APIのW系(Unicode)を利用するモジュールを使えば、260文字までは行ける。

686:デフォルトの名無しさん
17/02/28 08:31:44.98 ECHoSeWI.net
>>667
「長い」って何文字なん?260文字以下だと問題ないはず。

687:デフォルトの名無しさん
17/02/28 18:54:26.71 Gbg+HMKR.net
それ以上あったので問題があった

688:デフォルトの名無しさん
17/03/01 08:44:35.66 RfMjQxG+.net
Windowsで260文字以上のファイル名を普通に作ろうとすると、
「ファイル名が長すぎる」とエラーが出るが、
ネットワークドライブを使うと、作れてしまうようだ。
ただ、それを実際に使おうとすると、ドツボに嵌るみたいだな。

689:デフォルトの名無しさん
17/03/01 21:51:27.16 KTTjixcr.net
ファイル名っていうか、パスを含めた長さな

690:デフォルトの名無しさん
17/03/05 00:13:47.26 hhHVIZUN.net
@file = split(/\n/,`dir /s /b *.* 2>NUL`);
な。次スレのテンプレに追加するから。

691:デフォルトの名無しさん
17/03/05 15:57:50.73 des1Iukd.net
forkするのOKなら何でもありじゃん

692:デフォルトの名無しさん
17/03/08 23:48:39.27 0EPJtM8y.net
シェルとカーネルを縦横無尽に使いこなすのがPerlプログラミングの醍醐味。

693:デフォルトの名無しさん
17/03/09 15:21:10.67 lYcZyteE.net
print 1+(2+3);
print (1+2)+3;
この二つの文の違いを使いこなすのが、Perlプログラミングの醍醐味。

694:デフォルトの名無しさん
17/03/14 00:58:03.78 mRCDOzFa.net
awk 由来の 0+ ハックや "". ハックは常識として使いこなすのが、Perlプログラミングのたしなみ。

695:デフォルトの名無しさん
17/03/15 23:38:07.63 WjEGzhMP.net
ハックと言ってる時点で使ってはダメなものだ

696:デフォルトの名無しさん
17/03/16 00:17:10.27 a1z6pXZc.net
工夫できないなら何を使ってもダメ
sub to_s { $_[0].'' }
sub to_i { $_[0]+00 }

697:デフォルトの名無しさん
17/03/16 06:54:07.57 t2soddN5.net
>awk 由来の 0+ ハックや "". ハックは
そもそも、常識でないといいたげな、このレスは何?
まともな参考本読めば、最初の方に書いてある。
ハックでもなんでもない

698:デフォルトの名無しさん
17/03/20 17:47:23.90 5loIUxX7.net
Win-7、Active Perl 5.16です。Unicode文字を含むperlの処理結果を
utf16leで出力しようとしています。下のようにやってみましたが、ダメでした。
出力をバイナリエディタでみると、改行コードが変な風にいじられていました。
binmode STDOUT =>


699:":encoding(utf16le)"; print "ユニコード文字を含むテキスト\n"; 色々試した結果、下のスクリプトのようにすると、概ね動くことが解り ましたが、動かない場合もあります。下の例では、「aaaaa」は出力され ますが、「bbbbb」は出力されません。どうするのが正しいでしょうか? use utf8; binmode STDOUT; use Encode qw/ encode decode /; sub wprint{  foreach(@_){   s/\n/\r\n/g;   print encode('utf-16-le', $_);  } } wprint "a"x5, "\n"; foreach (1..5){  wprint "b"; } wprint "\n";



700:デフォルトの名無しさん
17/03/20 19:53:29.20 SJAmj6b4.net
>改行コードが変な風にいじられていました
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)

>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう

701:デフォルトの名無しさん
17/03/21 08:41:14.27 RAznfVax.net
>>682
672です。
よく解りました。
ありがとうございました。

702:デフォルトの名無しさん
17/03/31 19:10:56.36 I7SB2jha.net
print (1+2)+(4+5)+6+7;
3

703:デフォルトの名無しさん
17/03/31 21:37:50.01 lffYMjCi.net
print print (1+2)+(4+5)+6+7;
3
23
print print print (1+2)+(4+5)+6+7;
3
23
1 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


704:デフォルトの名無しさん
17/03/31 22:38:54.66 PsuuxH/N.net
$hash{'aaa'}{'bbb'}{'ccc'} = 1;
みたいなことをしても、普通に通るのが凄いよな
それでいて、仕様としては別に多次元ハッシュなんか対応してない

705:デフォルトの名無しさん
17/04/01 08:51:48.01 AF9KLm8F.net
なにをするんでもいちいちチェックが入って膨大な自動操作が裏で行われてる証拠。
さらに変数と実体を結びつけるデータテーブルもかなりの容量を使用してる。
木構造の探索などをやると、動作がCの10倍程度違うと言われるけど、やってみたらメモリ容量が100倍以上違うことも確認された。(将棋の盤面探索)。
まあ一時的にスクリプトが欲しいときとか、それが良い時はそれで良いけど、
通常のソフトウェアを作る時内部でそんなことが起きれてば完全な欠陥なわけであって。

706:デフォルトの名無しさん
17/04/01 17:07:22.61 y/H


707:Ezjsw.net



708:デフォルトの名無しさん
17/04/01 17:19:36.13 aXA7htV2.net
>>687
えーと、インタプリタとコンパイラって知ってるかい?

709:デフォルトの名無しさん
17/04/02 11:42:32.36 W390vP7B.net
1 ビット × 8000000 のビットマップって Perl でどうやるんだろう? こうかな?
$perl -e '$h{ $_ } = 1 foreach 0 .. 7999999; system("bash","-c","ps -p \$PPID -F");'
UID    PID PPID C  SZ  RSS PSR STIME TTY     TIME CMD
i     5240 4743 96 253250 997920 1 11:18 pts/4  00:00:05 perl -e $h{
$
みたいなことでもしたんだろうか。

710:デフォルトの名無しさん
17/04/02 12:21:59.20 n1w2M1cg.net
>>689
インタプリタとコンパイラの速度差は2倍未満と言われてるけどな
この場合は自動型変換などの暗黙の処理とデータテーブルが問題。
もちろん自動型のコンパイラを使用しても同じ結果になる。

711:デフォルトの名無しさん
17/04/02 13:25:59.95 zGspEIRF.net
お前の情報源はえらくあやふやだな

712:デフォルトの名無しさん
17/04/02 14:35:50.91 n1w2M1cg.net
「そう言われてる」ってやつだからな。
ただ有名なんで検索すればいろんなところで出てくる。
10倍遅くなるのは、自動処理が8でインタプリタが2、合計10

713:デフォルトの名無しさん
17/04/02 14:37:05.43 n1w2M1cg.net
別に正確な情報どうこうじゃなくて、
おそいのがインタプリタのせいだと思ってるよりずっといいでしょって話

714:デフォルトの名無しさん
17/04/02 15:56:48.17 s5HPpPnI.net
>>690
1行目とその先の関連がよく分からんが
URLリンク(perldoc.jp)

715:デフォルトの名無しさん
17/04/02 16:44:24.11 W390vP7B.net
ろくに知らなければこういうことをするかもな、という想像なんだが。わかりにくかったのならすまん。
なにしろ何をしたのかまったく解らないから適当に想像するしかないんだよ。

716:デフォルトの名無しさん
17/04/15 03:58:55.24 vTxJoJiF.net
Cでも
伸び縮みを含めた動的なメモリ宣言と開放と、呼び出しの度そのチェックと、管理情報の保存.
動的な値の自動変換と、呼び出しの度そのチェックと、管理情報の保存.
たったこんだけでも超遅くなるか
つか動的な宣言って超遅いよね

717:デフォルトの名無しさん
17/04/15 04:02:38.36 vTxJoJiF.net
それはそうと俺も稀にPerlやるんだが、
use utf8;
use strict;
use warnings;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
これ毎回書くんだが、全部省略できないかの
すぐこれ書くの忘れて文字コード関係でおかしくなるし、書いたら書いたで無駄に目障りなんだが・・・

718:デフォルトの名無しさん
17/04/15 10:45:22.06 DbxhuG0l.net
# Hoge.pm
package Hoge;
use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';
sub import{
  strict->import;
  warnings->import;
  utf8->import;
}
1;
# script.pl
use Hoge; # ただし@INCからHoge.pmが見つかるようにする

719:デフォルトの名無しさん
17/04/15 10:52:14.57 DbxhuG0l.net
そういやutf8なら
binmode STDOUT, ':utf8';
で良かったか

720:デフォルトの名無しさん
17/04/15 20:57:19.56 GBtgusH0.net
>>686
参照の -> を参照に対しては省略できるってだけだが。

721:デフォルトの名無しさん
17/04/15 21:19:29.96 4y1tBhnC.net
それが凄いところ
オブジェクト指向だって、ほんの小手先でちゃんと実用になるものを実装しちゃってる

722:デフォルトの名無しさん
17/04/15 23:53:13.69 k4jkkg7x.net
>>702
最低レベルな。
小手先で済ませちゃったから、それ以上の
便利な機能はライブラリ任せになっちゃって
いつまでも標準が生まれなかった。
Perl6にさっさと移行すればいいのに

723:デフォルトの名無しさん
17/04/15 23:58:43.13 4y1tBhnC.net
言語なんてそれでいいだろ
標準に拘っても何も得しない

724:デフォルトの名無しさん
17/04/16 00:42:48.16 cCOM2/u0.net
>>704
可読性の問題だ。
意味は全く一緒なのに、書き方を変えてどうする?
言語を変えるのと一緒だぞ

725:デフォルトの名無しさん
17/04/16 00:57:54.05 h3ZKvGOL.net
どうせ定番の奴がデファクトスタンダードになるんだから同じことだ

726:デフォルトの名無しさん
17/04/16 01:01:17.12 cCOM2/u0.net
その定番が生まれなかったんだろ

727:デフォルトの名無しさん
17/04/16 06:42:15.56 h3ZKvGOL.net
それは目的がニッチ過ぎたか利用者が少なすぎたからで、
どっちにしろ標準になんかならない

728:デフォルトの名無しさん
17/04/20 20:48:25.04 6ZaZCTR2.net
Perl6 ? そういえばそうゆうものもあったな。ググると、
1年半前に正式安定版がリリースされたのか。知らなかった。
誰も、その事を話題にすらしていないし。
スレリンク(php板)
「 Perl6/Parrotスレ - Part2 」

729:デフォルトの名無しさん
17/04/20 21:37:11.61 3zMwUShO.net
Perl6は別の言語だからな

730:デフォルトの名無しさん
17/04/20 22:48:25.36 QXbdV/cO.net
pythonもバージョンが上がって別言語になった

731:デフォルトの名無しさん
17/04/20 22:52:03.43 NBs+Bll8.net
>>711
なってないわ

732:デフォルトの名無しさん
17/04/20 23:04:27.00 Viw0Nzyo.net
>>698+699
PERL5OPTと組み合わせれば全て解消。

733:デフォルトの名無しさん
17/04/23 19:39:54.82 W+YLVZyj.net
>>697
そうか?ディスクI/Oが絡まないようなメモリ上だけの操作ならさほど遅い感じしないけど。
まあ、単純なのと比べたら遅いけどね。

734:デフォルトの名無しさん
17/04/23 19:56:30.69 W+YLVZyj.net
>>698
use encoding は?

735:デフォルトの名無しさん
17/04/30 10:11:15.92 zwl8qhxW.net
>>714
理論上完全に最適化できたとしても速度差は5倍以上あるよ

736:デフォルトの名無しさん
17/05/03 00:40:52.14 M+hoQd/o.net
$str = "みかん りんご ぶどう";
を・みかん ・りんご ・ぶどうというように文字の最初に・をつけるには
どう置換すればいいんですか?

737:デフォルトの名無しさん
17/05/03 00:56:20.79 weHSRqvf.net
join '', map { '・' . $_ } split ' ', $str;

738:デフォルトの名無しさん
17/05/03 01:07:15.97 Qv6lwwF1.net
$str =~ s/(\w+)/・$1/g;

739:デフォルトの名無しさん
17/05/03 01:13:44.21 i0PT5y6P.net
試してないだろ

740:デフォルトの名無しさん
17/05/03 02:22:37.42 0sDWrHda.net
linux mint18
perl6のインストールについて

$ sudo apt install rakudo
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ rakudo が見つかりません

どうしたらインストールできます?

741:デフォルトの名無しさん
17/05/03 02:40:51.60 0sDWrHda.net
$ perl6 -v
This is perl6 version 2015.11 built on MoarVM version 2015.11

すいません、解決しました

742:デフォルトの名無しさん
17/05/11 19:50:38.19 nIm7OIQv.net
POD書いてる?

743:デフォルトの名無しさん
17/05/11 23:25:04.61 nen5x9dT.net
メモリリーク検出になに使ってる?
とりあえず昔からTest::LeakTrace使ってるんだけど
いまはもっと便利なものがあったりするのかな?

744:デフォルトの名無しさん
17/05/24 13:05:14.66 9utV0RoM.net
Perl/Qt は癖があるね、Perl/Qtとクラスを同時に使おうとするとなかなか大変。

745:デフォルトの名無しさん
17/05/28 12:56:56.81 +Ey6Jlm8.net
テキストファイルを読み込むときに


746: // (例えばfile://...) があると、そこから行末まで読み込めない現象が起きるんだけど どうしたらちゃんと読み込める? binmodeにしても解決しなかった



747:デフォルトの名無しさん
17/05/28 13:01:09.18 +Ey6Jlm8.net
>>726
open fp, "<$file";
while(<fp>){
print $_;
}
みたいな感じで読み込んでる

748:デフォルトの名無しさん
17/05/28 14:02:42.07 0c9kwMSl.net
そんな訳ない

749:デフォルトの名無しさん
17/05/28 14:05:21.98 9RwfEHwH.net
ファイルハンドルからダブルスラッシュが含まれる行を読み込もうとするとダブルスラッシュが行末と誤認されるという解釈でいいんですかね

750:デフォルトの名無しさん
17/05/28 14:33:51.85 eFuC5yco.net
絶対になにかカンチガイしてるだろう。
単に出力のバッファリングで単に表示されてないだけとか。
もしくは自分で"//"以降を削除するような処理をしているとかだな。
正規表現の書き誤りがあやしい。

751:デフォルトの名無しさん
17/05/28 14:59:23.09 0c9kwMSl.net
実際に、>>726の方法で読ませればちゃんと読む筈
怪しい箇所を削っていって試せばいい

752:デフォルトの名無しさん
17/05/28 15:01:31.81 /dM5Kslk.net
>>726
再現コードを

753:717
17/05/28 16:52:39.75 +Ey6Jlm8.net
カンチガイでした
別のところでCのコメント削除をしていて
そこで消えてました
テヘペロ

754:デフォルトの名無しさん
17/05/28 18:05:45.48 DFLy+ixu.net
ま、そんなもんよ
いい経験したな
次に活かせよ

755:デフォルトの名無しさん
17/05/28 20:22:17.89 4xPNWoV3.net
C/C++のソースコードを読んで
コメント削除したソースコード
ifdefとかのプリプロセスしたソースコード
typedef, struct, unionとかを抽出した結果
を得たいんだけどどうするのがいいだろう

プリプロセスしたソースコードをcflowに渡すと
関数コールツリーを得られるから
それらを使ってCのソースコード理解に役立てたい

756:デフォルトの名無しさん
17/05/28 21:37:34.83 QPUrPhGM.net
>>735
何が難しいのか、なんでそんなことをしたいのかよくわからん。

757:デフォルトの名無しさん
17/05/28 22:39:53.18 H3cdg50W.net
>>735
自前で作るって話からは外れるけど、Doxygenに突っ込むとかじゃダメなの?

758:デフォルトの名無しさん
17/05/29 06:06:36.99 iFMZQ+Zt.net
>>736
Cのソースコード理解のため

難しいのは例えばif x>=10 && (defined(y) || z==1)とか
ifdef elif else endifとかの入れ子とか
を正しくパースしたりすること

structを抽出したあと
それらの参照関係も図示したい

759:デフォルトの名無しさん
17/05/29 06:07:01.52 iFMZQ+Zt.net
>>736
簡単なら作ってgitとかにあげてほしい

760:デフォルトの名無しさん
17/05/29 06:09:33.49 iFMZQ+Zt.net
>>737
プリプロセスする前のコードだと重複したりすると思う

gcc -Eとかだと
#defineとかまで展開されるからそれは抑えたい

761:デフォルトの名無しさん
17/05/29 06:15:46.76 1pPkP4QE.net
gcc -E じゃだめなのか。
cpp のソースコードを読んでみるのがいいと思うよ。
昔、LSI-C 86 のプリプロセッサのソースコード読んで勉強したなあ。

762:デフォルトの名無しさん
17/05/29 07:11:36.94 7MORbIbH.net
>>735
cflowの中でプリプロセスするから事前にする必要はないと思うけど

763:デフォルトの名無しさん
17/05/29 17:52:39.84 aFd0yPA1.net
>>742
一部だけプリプロセスさせたいんです
マクロとかはそのままの方がわかり易いので

764:デフォルトの名無しさん
17/05/29 18:14:45.54 aFd0yPA1.net
例えば
#define ERRLVL 5
#define WARLVL 3
とかなってるのをプリプロセスすると
数字に置き換わるので意味が判りにくくなる

だけど#ifdefとかはプリプロセスしないと
例えば32ビット版の関数や構造体と
64ビット版の関数や構造体が重複してしまう

765:デフォルトの名無しさん
17/05/30 04:54:25.56 Al54U2am.net
CPAN に Text::CPP なんてのがある


766:諱B そのままではご要望どおりじゃないと思うけど参考にはなるかも。



767:デフォルトの名無しさん
17/05/30 20:58:34.87 Al54U2am.net
言いたいことはよく解る。
とりあえず、プリプロセッサの通常の動作から変更したいのは
・C ソースの中のマクロ置換はしない
・#define ディレクティブは用済みになっていないのでそのまま出力する
といったところ?
もし Text::CPP の作者がそれを有意義だと思ってくれたら、
なんとかしてくれる可能性もなくはないかもしれないな。
連絡先は README に書いてあるよ。

768:デフォルトの名無しさん
17/05/30 21:10:46.26 Al54U2am.net
cpp をそのまま使うという方法もなくはないよ。

#define ディレクティブの前と C ソーステキストの前の行に
#line ディレクティブを入れる。
cpp の処理結果には #line ディレクティブがあるから
それを手がかりに元のファイルからコピーする。

この程度のことなら出来そうじゃない?

769:726
17/06/01 00:33:15.15 mVcFCi6e.net
作ってみたけどバグがあるだろう
URLリンク(github.com)

770:デフォルトの名無しさん
17/06/04 17:04:48.43 JLuePf+9.net
あまり野暮なことはいいたくないけど、ファイルハンドルから行を読むんじゃなくて
トークンを読んだ方がシンプルに書けるんじゃないかな。そうすれば
while(( my $tokentype,my $str) = gettoken( $fh)){
if ( $tokentype == 'comment'){ case_comment;}
elsif ( $tokentype == 'string'){ case_string;}
みたいなやり方が出来る。気を悪くしないでほしい。本当にそう思ったんだ。

771:デフォルトの名無しさん
17/06/05 23:40:47.35 AlRALdx8.net
gettoken()を作ってread()で一文字ずつ読み込んでトークンを返すのは良さそうだけど
トークンタイプはその時の状態が判らないと判別できないと思う
//は普通の状態で現れたらコメント開始だけど
"の中だと文字列
/*の中だとコメント文字列

772:デフォルトの名無しさん
17/06/09 13:39:22.36 jmjGKHXw.net
tcpのIO::Socket使ってサーバーに対してconnectした後、closeせずに親プロセスは接続を維持したまま、
forkした子プロセスでサーバーから受信した大量の文字列をファイルに書くとかするには子プロセスが継承したソケットをどう破棄したらいいの?
現状では当然の事ながら親プロセスの受信待ちが完全に止まってしまって困ってます

773:デフォルトの名無しさん
17/06/09 14:33:09.33 1EhRpyQk.net
なぜ子プロセスでコネクトしないの?

774:デフォルトの名無しさん
17/06/09 14:41:19.37 jmjGKHXw.net
>>752
客先のサーバーの仕様とやらで複数の接続(connect)に対応していない模様(爆)

775:デフォルトの名無しさん
17/06/09 19:57:08.76 ipZEdn/U.net
>>753
親プロセスの接続を切れば複数接続じゃなくなると思う

776:742
17/06/10 02:10:59.82 6TQL4PKJ.net
解決しました
fork()してから普通に子プロセス側で$socket->close();すれば良かったのですね。
ありがとうございました

777:デフォルトの名無しさん
17/06/13 00:27:54.86 5t+GNw1N.net
>>676,684-685
なぜこうなるの?

778:デフォルトの名無しさん
17/06/13 02:06:41.19 Z49xlslC.net
ヒント:
print"Hello world!\n";
print "Hello world!\n";
print("Hello world!\n");
print ( "Hello world!\n" );

779:デフォルトの名無しさん
17/06/13 06:02:24.69 TrwiR2C4.net
1. print 文は実行が成功するとTrue(1)を返す
2. すべての引数を括弧で括るのでなければ、print というキーワードの 次に開き括弧を書いてはいけません

ってだけの話。

print print print (1+2)+(4+5)+6+7;
は、
print (1+2) を実行したあとに
print 1+(4+5)+6+7実行して、
その戻り値1をプリントしてるだけ。

780:デフォルトの名無しさん
17/06/14 00:2


781:6:46.99 ID:J0vYxrWi.net



782:デフォルトの名無しさん
17/06/14 07:10:52.51 nXcqV3BV.net
>>750
そんな面倒なことを考えなくてもいいように gettoken を書くんだよ。
普通は C の文字列定数の中でわざわざ // を認識しない。どんなやりかたを考えてるの?
興味があるなら flex とかやったみたらどうかな。

783:デフォルトの名無しさん
17/06/14 08:00:33.67 XYhnRuER.net
>>760
文字列定数の中か外かはどうやって判別するの?

784:デフォルトの名無しさん
17/06/14 23:53:09.01 nXcqV3BV.net
ずいぶん前のことなのに反応があって嬉しいよ。
とりあえず、行継続もプリプロセッサディレクティブの処理もエラーチェックも無し、
コメントと文字列だけでいいなら flex ならこう書ける。
URLリンク(ideone.com)
本当は '"' みたいな文字定数も想定しなきゃまずいけどね。

もちろん、flex を使わなくてもできる。
yylex を手書きするなら、まず 1 バイト読んで

switch ( c){
case '"': read_string(); break;
case '/': read_comment(); break;

みたいにするのが伝統的な方法だったりする。
この方法では switch から出る前にトークンを完結させる。
コメントや文字列定数の中と、それ以外の部分で文法が違うから
別の処理になっていると理解してほしい。
こうしなければならないわけではなく、テーブル駆動とかステートマシンが好みならそうすればいい。
重要なのは、yylex を 1 回呼べばトークンが 1 個完結しているということ。
もちろん Perl でも同じやり方はできる。できるけど…… Perl ですよ?
助けてくれるモジュールがあるんだから使ってみない? Parse::Lex とか。
flex をかじっておけば理解しやすいと思うよ。

785:デフォルトの名無しさん
17/06/16 07:59:43.13 ULLUKZU9.net
>>762
それはcase文の文字で状態遷移してるのと等価
"があったら文字列の中の状態
/があったらコメント開始の1文字目の状態
モジュールを使ったのがネットにあったから使ってみたけど
期待と違ったから自作した

786:デフォルトの名無しさん
17/06/16 08:02:46.40 ULLUKZU9.net
>>762
あとread_commentの中で*が直後にくる場合はコメント内だけど
別の文字が来たらコメントじゃない
read_commentとしてるけどコメントとは判別できない

787:デフォルトの名無しさん
17/06/23 23:36:24.65 jQG6z3fn.net
ネストしたブロックを正規表現でとりたくてperlreにある再帰パターンというのつかおうとしているですが(?>[^()]+)の部分うまくかきかえられません。
loop〜end loopの形にしたいのですが、 (?!)の使い方がわるいのかヒットしないorz

788:デフォルトの名無しさん
17/06/26 23:50:27.94 zIACp4Pg.net
(?>¥b(?!end loop|loop)で行けました。

ヒットしなかったのは再帰始まりのloopと干渉していたらしく、始まりをちゃんと書いたら動きました。

789:デフォルトの名無しさん
17/06/28 23:50:10.85 eZnf2YJC.net
FW使わずにpsgi/slackを使おうとしてて、モジュールの名前と言うか場所に悩んでます(´・ω・`)

pathがperl -I /hoge/lib/として、
/hoge/lib/Controller.pmみたいのを置きたいけど名前被りが嫌なので避けるための手法として

/hoge/lib/myController.pmとか
/hoge/lib/MyApp/Controller.pmとかあると思うんですが

perlでこういう場合の命名規則?というかお約束みたいな名前ってあるんでしょうか。
/hoge/lib/作ってるサイトのドメイン/Controller.pm
みたいにしようと思ったけど、
use 作ってるサイトのドメイン::Controller.pm
こんなの使いまわし効かなさすぎて嫌


790:キぎる



791:デフォルトの名無しさん
17/06/29 06:52:20.07 jqMU9B7T.net
お約束はない。

>こんなの使いまわし効かなさすぎて嫌すぎる
ん?
スクリプト内で動的に変更したいとか、そこらへん?
じゃなきゃ普通に use XXXX::Controller で作っちゃうけど?

あとは、物理的にパス切らない。くらいだよね?
$ cat Hoge.pm
package Hoge::Foo;
sub hoge{ "hoge" }
1 ;
$ perl -MHoge -le 'print Hoge::Foo::hoge'

myController.pm 一個作って、中で切り分けちゃえば?

792:デフォルトの名無しさん
17/06/29 15:18:22.72 /7f1HAmp.net
どもです。
URLで言うexample.comみたいな不可侵領域?的なのが無いのかなぁと思った感じでした。

793:デフォルトの名無しさん
17/06/29 17:00:57.00 sULhhpBu.net
>>769
この辺一通り読むと参考になるかもね
URLリンク(perldoc.jp)

794:デフォルトの名無しさん
17/06/29 17:25:38.71 /7f1HAmp.net
>>770
> もしプライベートな内部やプロジェクト固有の用途のために開発中のモジュールが 決して公開されることがないなら、
> 将来の公開モジュールと名前が 衝突しないことを確実にしてください。
> これは、予約済みの Local::* カテゴリを使うか、 Foo_Corp::* のように 名前にした戦を含めることで行えます。

これだあああ
戦ってのが謎ですが、Localディレクトリに入れることにします。
ありがとうございます!

795:デフォルトの名無しさん
17/06/29 17:51:43.29 MlIjnXqh.net
たぶん「した戦」→「下線」アンダーラインのことかと

> Foo_Corp::* のように 名前に下線を含めることで

796:デフォルトの名無しさん
17/06/29 18:03:16.93 /7f1HAmp.net
なるほど…
ちゃんと訳した上で漢字を変な読み方した状態でのタイポとはw

797:デフォルトの名無しさん
17/06/30 20:59:30.86 O3ckt/Q4.net
今とあるスクリプトを見たら
1 while(s/[\012\015]$//);
こんなん書いてあったんだけど、
たぶん改行とおぼしきものは全部消すってことだと思うんだけど、
いらんもんまで消しすぎたりしてない?

798:デフォルトの名無しさん
17/06/30 21:30:32.10 nK8Rv+fa.net
スカラー末の改行(の連続)を外す。
スカラー内の改行は外さない。
作者の意図通りに、余分なものは消さないと思うよ。

普通に、s/[¥012¥015]$//g ; すりゃいいと思うけど、、、

799:デフォルトの名無しさん
17/06/30 23:49:28.02 5o89YkXB.net
スカラー?

800:デフォルトの名無しさん
17/07/01 06:06:23.31 756r6lLe.net
whileとgは同じじゃない

801:デフォルトの名無しさん
17/07/01 06:27:43.88 756r6lLe.net
文字の末尾が012か015だったら消すんじゃない?
文字コードもわからないけど

802:デフォルトの名無しさん
17/07/01 06:43:42.49 LXXRZ/Ka.net
動作は >>778 の通りだと思うけど
1 while が意味不明だな

803:デフォルトの名無しさん
17/07/01 06:50:18.42 756r6lLe.net
while 1 はマニュアルにも記載されてる基本的な手法
条件だけで実行が完了する

804:デフォルトの名無しさん
17/07/01 09:11:09.64 vTsOeFgm.net
もっとくやしく

805:デフォルトの名無しさん
17/07/01 09:24:13.31 B+Q6GXxH.net
1は無視していいよ

806:デフォルトの名無しさん
17/07/01 10:05:39.83 756r6lLe.net
勉強し始めて1日で覚えるようなことを全然分からんようなやつが回答者ぶってるのかよ

807:デフォルトの名無しさん
17/07/01 10:10:49.16 756r6lLe.net
とりあえず一通り調べたけど、末尾に改行を使う文字コードはなかったから、
1 while(s/[\012\015]$//);
これは本当に改行を削除したいならあらゆる方法の中で最善だと思われる
本当にかたっぱしから消したいのなら、だけど…

808:デフォルトの名無しさん
17/07/01 10:11:51.33 756r6lLe.net
と言うより $ が自動でその判定してるから、関係ないものは消えないはずなんだよね

809:デフォルトの名無しさん
17/07/01 11:23:51.39 Enayuk


810:TL.net



811:デフォルトの名無しさん
17/07/01 11:26:08.99 EnayukTL.net
あ、単純に変数最後の CRLF 削りたいだけなら、比べ物にならん程
chomp の方が早い。

local $/ = “¥r¥n” ;
chomp $_ ;

812:デフォルトの名無しさん
17/07/01 12:14:31.52 B+Q6GXxH.net
ActivePerlとCygwinの両方で動くようにしようと思うと、chomp使えないんだよな

813:デフォルトの名無しさん
17/07/01 12:31:21.77 EnayukTL.net
ん?
どっちが悪いか知らんが、
local $/ = “¥012¥015” ;
も効かんの?

814:デフォルトの名無しさん
17/07/01 12:36:32.24 756r6lLe.net
\rだの\nだの使ってることに神経を疑っちまうぜ
と言うかutf8にさえ文字とみなされない文字を使ってる時点で…

ところで以下の3つは全部挙動が違いので並列にベンチとっても無意味
chomp;
s/[\012\015]$//gm;
1 while(s/[\012\015]$//);

特に真ん中のは色々とひどいことになると予想した

815:デフォルトの名無しさん
17/07/01 12:40:25.72 756r6lLe.net
>>789
I/Oと言うのはその名の通りIとOがあってだな

816:デフォルトの名無しさん
17/07/01 12:48:39.37 EnayukTL.net
>>790
ご指摘の通り俺が間違ってたわ。
chomp が違うのは同意

#!/usr/bin/perl
use Benchmark qw( cmpthese timethese ) ;
my $f = +( "42¥012¥015" x 1000 ) . +( “¥012¥015" x 10000 ) ;
sub _gms { my $f2 = $f ; $f2 =~ s/[¥012¥015]$//gms ; }
sub _while { my $f2 = $f ; 1 while $f2 =~ s/[¥012¥015]$// ; }
cmpthese(timethese (undef, {
while => '_while',
gms => '_gms',
})) ;

Benchmark: running gms, while for at least 3 CPU seconds...
gms: 4 wallclock secs ( 3.24 usr + 0.03 sys = 3.27 CPU) @ 391.13/s (n=1279)
while: 3 wallclock secs ( 3.01 usr + 0.03 sys = 3.04 CPU) @ 155.26/s (n=472)
Rate while gms
while 155/s -- -60%
gms 391/s 152% --

817:デフォルトの名無しさん
17/07/01 12:51:34.83 EnayukTL.net
>>792 は上手く動いてねーw
すまん。全面的の俺のレスは脳内から消してくれ。

818:デフォルトの名無しさん
17/07/01 13:05:38.92 EnayukTL.net
連レスすまん。これを最後に消える。

s/[¥012¥015]¥Z//gm

出力を od -d -a で確認したから合ってると思う。
でベンチマーク取ったけど、記憶にある通りのベンチになった。
通りで>>786>>792が遅いわけだわ。

819:デフォルトの名無しさん
17/07/01 15:21:02.94 iaxNT7Vw.net
しかしなんで8進数?
これが普通なの?

820:デフォルトの名無しさん
17/07/01 20:55:02.68 LXXRZ/Ka.net
うーん いくら考えても 1 while() と書いてる意味がわからん
gオプションついてないから while の意味ないし
結果知りたいなら s/// の値を直で調べりゃ済む話だし
何故なんだ 誰か教えてください

821:デフォルトの名無しさん
17/07/02 02:22:16.04 ucaUnn+J.net
量指定子の存在しない世界線なのか。

#!/usr/bin/perl -w
use strict;
sub hd { print '[', join(' ', map uc unpack('H2', $_), split //, $_[0]), "]\n" }
my($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$


822:cr$n"; $_ = $str; 1 while s/[\012\015]$//; hd($_); ($_ = $str) =~ s/[\012\015]$//g; hd($_); ($_ = $str) =~ s/[\012\015]+$//; hd($_); __END__ なお改行が \015 でも \012 でもそれらの組み合わせでもない環境があるので、 $ と \Z と \z の意味するところは元のコードが使われていた環境に依存する。 http://perldoc.jp/docs/perl/perlport.pod#Newlines



823:デフォルトの名無しさん
17/07/02 08:10:30.13 cmIXSukt.net
ありがとう すごくよくわかった
1 whileの挙動をなにか勘違いしていたみたい

そしてベンチマーク取ってみたら
1 while s/[\012\015]$//; よりも while(s/[\012\015]$//){} の方が微妙に速かった
(すごく微妙なんだが 毎回1を評価しないでいい分の差??)
そして s/[\012\015]+$//; は1桁近く遅かった そうだったんだ…

824:デフォルトの名無しさん
17/07/02 12:35:43.14 9IiniyIy.net
オレ速度はあまり気にしないから、いつも素直に s/(?:¥r?¥n)+$//; の感じだな。
¥b入れた方がいいのかもしれないけれど入れたことはない。
$とって、gつければ、改行全部きえるはずだよ。
(行単位に分離されてそうだけど。。。)

825:デフォルトの名無しさん
17/07/02 14:53:25.87 ucaUnn+J.net
>>798
一体どんな計り方をしたんだ。
URLリンク(perldoc.jp)
URLリンク(perldoc.jp)
#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my($lf, $cr, $n) = ("\012", "\015", "\n");
for my $str ("$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n", "abc$n", 'abc') {
   cmpthese(-5, {
    ws => sub { $_ = $str; 1 while s/[\012\015]$//; 1 },
    wb => sub { $_ = $str; while (s/[\012\015]$//) {} 1 },
    qu => sub { $_ = $str; s/[\012\015]+$//; 1 },
  });
print "\n";
}
__END__
これぐらいシンプルな正規表現なら
エンジン内でのバックトラック >> 文自体の反復 >= ループ構造
文字列内に [\012\015] にマッチする文字があればあるほど qu の方が速くなる。

826:デフォルトの名無しさん
17/07/02 17:06:13.22 cmIXSukt.net
こんな計り方↓

#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw/:all/;

my ($lf, $cr, $n) = ("\012", "\015", "\n");
my $str = "$n$cr$lf$lf${cr}1${cr}2${lf}3$cr${lf}4${n}5$n$cr$lf$lf$cr$n" x 100;

cmpthese -5, {
'1while' => sub {$_ = $str; 1 while s/[\012\015]$//;},
'1while_g' => sub {$_ = $str; 1 while s/[\012\015]$//g;},
quantifier => sub {$_ = $str; s/[\012\015]+$//;},
while_g => sub {$_ = $str; while (s/[\012\015]$//g){};},
while => sub {$_ = $str; while (s/[\012\015]$//){};},
};
__END__

同じwhileでもgオプションつけると微妙に速くなる
面白い

827:デフォルトの名無しさん
17/07/03 04:18:38.68 7bJtUMTI.net
>>801
自分の感覚と真逆の結果なんで -Mre=debug して調べたら、 [\012\015]$ だと
固定長だからエンジンが動作を最適化して最初から末尾しかみないんだな。
だから文字列自体が長くなると逆転が起こると。勉強になったよ。

#!/usr/bin/perl -w
use strict;
use Benchmark qw(cmpthese);
my $n = "\015\012";
my $sa = $n x 500; # 全文字にマッチ
my $sf = ($n x 250) . ('a' x 500); # + の場合前半に長くマッチした上で失敗する
my $sl = ('a' x 500) . ($n x 250); # 後半に長くマッチ
my $sn = 'a' x 1000; # マッチしない
my $su = ('a' x 998) . $n; # 末尾のみ

cmpthese(-5, {
  wa => sub { $_ = $sa; 1 while s/[\012\015]$//; 1 },
  wf => sub { $_ = $sf; 1 while s/[\012\015]$//; 1 },
  wl => sub { $_ = $sl; 1 while s/[\012\015]$//; 1 },
  wn => sub { $_ = $sn; 1 while s/[\012\015]$//; 1 },
  wu => sub { $_ = $su; 1 while s/[\012\015]$//; 1 },
  qa => sub { $_ = $sa; s/[\012\015]+$//; 1 },
  qf => sub { $_ = $sf; s/[\012\015]+$//; 1 },
  ql => sub { $_ = $sl; s/[\012\015]+$//; 1 },
  qn => sub { $_ = $sn; s/[\012\015]+$//; 1 },
  qu => sub { $_ = $su; s/[\012\015]+$//; 1 },
});
__END__

828:デフォルトの名無しさん
17/07/03 21:35:51.52 88Z7s+4Q.net
こちらこそ勉強になりました
まぬけな質問 >>796 やとんちきなベンチマーク >>801 でも
役に立つ(?)こともあるんですな

829:デフォルトの名無しさん
17/08/15 19:10:26


830:.36 ID:mGHj5vlw.net



831:デフォルトの名無しさん
17/08/16 00:53:07.53 83B6OrrB.net
一番要るのはCPANとの連携機能だろ

832:デフォルトの名無しさん
17/08/17 08:11:08.69 3rgoYIbT.net
CPANとの連携機能はどっちでもいい
みんなメモ帳レベルのテキストエディタで書いてるの?

833:デフォルトの名無しさん
17/08/17 08:48:00.96 ewlyrxLm.net
IDEといいつつエディタでいいのか?

834:デフォルトの名無しさん
17/08/17 21:40:11.78 DvPmzIRV.net
vscode

835:デフォルトの名無しさん
17/08/17 22:05:58.41 3rgoYIbT.net
どこまでがエディタでどこまでがIDEなのか分からないが、それなりの機能は欲しい
自作関数とかも補完して欲しいしなあ
サンクス
vscode調べてみる

836:デフォルトの名無しさん
17/08/26 14:13:33.64 zbaxfQ1B.net
これ誰が使うの?
URLリンク(docs.perl6.org)

837:デフォルトの名無しさん
17/08/27 20:38:24.57 SUXQdIaA.net
Perl6?

838:デフォルトの名無しさん
17/08/27 21:17:36.95 l5ljwsJk.net
6は別物らしいね

839:デフォルトの名無しさん
17/08/27 22:40:07.20 eg2XZFIG.net
pythonもVBもバージョン上がると別物になる
そして大抵古い方が使いやすい

840:デフォルトの名無しさん
17/08/27 22:55:26.24 l5ljwsJk.net
pythonはそろそろLinuxのデフォルトが3になりそうだけど
Perlはそんな気配全く無いよねw

841:デフォルトの名無しさん
17/08/27 23:11:43.20 QvkIPToQ.net
システム付属のスクリプト言語っていう立ち位置がかつてのPerlからPythonに変わったからなあ

842:デフォルトの名無しさん
17/08/27 23:14:14.93 eg2XZFIG.net
過去の資産が多いほどおいそれとは変えられない

843:デフォルトの名無しさん
17/08/29 00:32:32.45 MFSwZwGT.net
Perl は5.005まで。5.6からは別物。

844:デフォルトの名無しさん
17/08/29 18:35:08.35 rhRVTFDq.net
<?=>

845:デフォルトの名無しさん
17/08/29 18:35:53.37 rhRVTFDq.net
>>810
なにそれどうやって書くの?

846:デフォルトの名無しさん
17/08/30 09:00:08.40 Lglrs9g0.net
>>819
Unicode Character 'ATOM SYMBOL' (U+269B)
おいらのPCでは、コピペしてもフォントが対応していないので出てが。

847:デフォルトの名無しさん
17/08/30 19:42:59.46 bbdqdnnx.net
環境によってはどうやってもアトミックにならんのでは

848:デフォルトの名無しさん
17/08/31 15:10:50.45 zaIZgwYc.net
$_ って正式名称はなに?

849:デフォルトの名無しさん
17/08/31 20:40:54.54 3/js14c9.net
>>822
特に決まっていない
use English した時の名前は ARG
URLリンク(perldoc.jp)
URLリンク(perldoc.perl.org)

850:デフォルトの名無しさん
17/08/31 21:06:33.50 kksFNuyJ.net
日本だとparameterもargumentもどっちも引数と訳して区別しないから、
何故ARGなのかピンときにくいな

851:デフォルトの名無しさん
17/08/31 22:02:37.51 j9yVEoD5.net
引数は単に引数ってだけ。その使われ方は決まっていない。
例えば言語によっては関数の引数で戻り値を返すことだってできる。
つまり引数=パラメータではない
また関数の引数の多くはパラメータになるが、
引数だけがパラメータではない。
環境変数でパラメータを渡すことも有る
つまり「この関数の引数はすべてパラメータであり、引数以外のパラメータは取らない」
のような使い方をする

852:デフォルトの名無しさん
17/08/31 22:05:02.71 j9yVEoD5.net
なぜ $_ が ARGなのかというと
正式名称が「デフォルトの引数」だからである。

853:デフォルトの名無しさん
17/08/31 22:17:16.68 kksFNuyJ.net
そういう理解なんだねとは思うけど、何も正しくない
パラメータは、数学の媒介変数から借りてきた言葉


854:で、 それを変化させると結果がいろいろ変わる変数 argumentは訳語が無いのでアーギュメントとするけど、 これは仮引数とも訳されて、関数を定義する時に便宜的に使われる名前 y = f(a) と使うけど、定義では f(x) = x*x みたいに違う名前で書く ここで、aがパラメータで、xがアーギュメント



855:デフォルトの名無しさん
17/08/31 22:45:26.64 j9yVEoD5.net
それは数学での定義でしかない

856:デフォルトの名無しさん
17/09/01 15:00:43.14 H3SYi0Xx.net
引数として使ってるものが引数
パレメータとして使ってる物がパラメータ

857:デフォルトの名無しさん
17/09/02 10:40:48.32 u6TVALzz.net
パレパレ

858:デフォルトの名無しさん
17/09/02 12:32:02.45 xOFD7X9t.net
パレメータでぐぐると600件くらいヒットするから、
それなりに認知された用語だ

859:デフォルトの名無しさん
17/09/03 01:01:13.45 93btyWjA.net
ネイティヴ風の発音だね

860:デフォルトの名無しさん
17/09/03 11:11:45.08 DIhXI1rF.net
たまにいるよな。
大抵のカタカナ英語は日本語風に書いているのに
特定の単語だけネイティブ風に書くやつ
より正確な英語の発音にこだわってるんだー風を
だしていながら、その他のよく知られたカタカナ英語は
そうやってないから、ものすごく恥ずかしい

861:デフォルトの名無しさん
17/09/03 12:13:05.99 9X5Pxl9y.net
何言ってんだかさっぱりわかんないな。
これじゃ駄目なん? 普通にパラメータに聞こえますけど。
URLリンク(ejje.weblio.jp)
元凶は日本のマスゴミなんだから逆らって
アイフォーンをアイフォンとかは全然いいんじゃない?

862:デフォルトの名無しさん
17/09/03 17:26:43.87 B/+QCXTV.net
そして突然迷い込む馬鹿二人(うち一人が発狂)

863:デフォルトの名無しさん
17/09/04 02:55:51.13 wDfrhDJb.net
パリミラァ

864:デフォルトの名無しさん
17/09/04 05:58:32.53 jkNKu/s3.net
なんてネイティヴな発音!

865:デフォルトの名無しさん
17/09/06 01:01:55.01 G3iCmUe0.net
アイフォーンはアイフォーンだろうがゴミ
日本企業の商標を無視するとか朝鮮人かよ

866:デフォルトの名無しさん
17/09/06 19:33:55.21 sdZlzdoG.net
先にアイホンがあったから、アイフォンって名乗れないだけだけどな


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

546日前に更新/269 KB
担当:undef