<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>です。</p><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">perl</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ActivePerl</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stableperl</anchor></li></ul></figure></p></section><section><h1>概念</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlにおける文字コード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規表現</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlモジュール</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CPAN</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラグマ</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準モジュール</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlの版を調べる</anchor></li><li><code>fork<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">fork (Perl)</title></code></li><li><code>#line</code></li><li><code>undef</code></li><li><code>defined</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エラー処理<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">エラー処理 (Perl)</title></anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハンドル<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">ハンドル (Perl)</title></anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlにおける日時</anchor></li><li><code>Symbol</code></li><li><code>pack</code>, <code>unpack</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlにおけるテスト</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SV</anchor></li></ul></figure></p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perlモジュール</anchor></figcaption><ul><li><code class="perl" xml:lang="en">Encode.pm</code></li><li><code>List::Rubyish</code></li><li><code>AnyEvent</code></li><li><code>Promise<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Promise (Perl)</title></code></li><li><cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">The locale interface</anchor></cite></li><li><code>Promised::File</code></li><li><code>Image::XFace</code></li></ul></figure><section><h1>歴史的意義はあっても新規で使うべきではないもの</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> は歴史が長いだけに、
いろいろな時代の利用事例、解説記事その他が豊富にあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> 世界は古い時代のものとの互換性も比較的保たれている方ではありますが、
うっかり古いものを学ぶと現代の世界に適用できなかったり、
無駄な苦労をしたりすることが多いです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 
次のような機能や概念や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>は、
ある時期一世を風靡し、利用されたり解説されたりすることが多かったのですが、
今となっては知識がないと使いこなせないものですから、
初心者は迂闊に近寄らないよう気をつけましょう。</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> かつて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> 世界で重宝されたが今となっては避けるべきものたち</figcaption><ul><li><code>jperl</code></li><li><code>cpan</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイルハンドル</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ディレクトリーハンドル</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型グロブ</anchor></li><li><code>use encoding</code></li><li><code>jcode.pl</code></li><li><code>Jcode.pm</code></li><li><code>NKF.pm</code></li><li><code>JSON.pm</code></li><li><code>YAML</code></li><li><code>JSON::Syck</code></li><li><code>Class::Accessor</code> シリーズ</li><li><code>Moose</code></li><li><code>LWP</code></li><li><code>URI.pm</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor></li><li><code>CGI.pm</code></li><li><code>mod_perl</code></li><li><code>Catalyst</code></li><li><code>Mojolicious</code></li><li><code>Plack</code></li><li><code>Starman</code></li><li><code>Starlet</code></li><li><code>DBI</code></li><li><code>DBIx::Class</code></li><li><code>DateTime.pm</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モダンPerl</anchor></li></ul></figure></section></section><section><h1>企業</h1><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> を主要な開発言語 (の1つ) としている企業</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">株式会社はてな</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DeNA</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mixi</anchor></li></ul><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">livedoor</anchor></li></ul></history></figure></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl6</anchor> は関係ありません。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>CPAN/src</cite>
(<time>2009-11-17 07:02:08 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.cpan.org/src/README.html">http://www.cpan.org/src/README.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 64ビット環境で実験してみた。</p><pre class="perl">$ perl -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 51
x = 2.25179981368525e+15; x+1 = 2251799813685249; x == x+1 = 0
$ perl -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 52
x = 4.5035996273705e+15; x+1 = 4503599627370497; x == x+1 = 0
$ perl -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 53
x = 9.00719925474099e+15; x+1 = 9.00719925474099e+15; x == x+1 = 1
$ perl -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 54
x = 1.8014398509482e+16; x+1 = 1.8014398509482e+16; x == x+1 = 1</pre><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">64ビット浮動小数点数</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仮数</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">二進数</anchor>で53桁らしく、それが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>を正しく表現できる限界らしい。</p><pre class="perl">$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 51
x = 2.25179981368525e+15; x+1 = 2251799813685249; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 52
x = 4.5035996273705e+15; x+1 = 4503599627370497; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 53
x = 9.00719925474099e+15; x+1 = 9007199254740993; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 54
x = 1.8014398509482e+16; x+1 = 18014398509481985; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 62
x = 4.61168601842739e+18; x+1 = 4611686018427387905; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 63
x = 9.22337203685478e+18; x+1 = -9223372036854775807; x == x+1 = 0
$ perl -Minteger -e '$a = shift; printf &quot;x = %s; x+1 = %s; x == x+1 = %s\n&quot;, 2**$a, 2**$a+1, (2**$a==2**$a+1)?1:0' 64
x = 1.84467440737096e+19; x+1 = 0; x == x+1 = 0</pre><p><code class="perl" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">use</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">integer</anchor></code> すると2の63乗の1つ手前まで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>として扱えるようになる。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite>404 Blog Not Found:Perlの登録商標について - Perl belongs to us</cite>
( (<time>2011-10-01 13:13:31 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://blog.livedoor.jp/dankogai/archives/51733482.html">http://blog.livedoor.jp/dankogai/archives/51733482.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="ja">リロケータブル Perl - skaji's blog</cite>
( (<time>2014-10-02 00:52:49 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ks0608.hatenablog.com/entry/2014/07/06/170328">http://ks0608.hatenablog.com/entry/2014/07/06/170328</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite>perldelta - search.cpan.org</cite>
( (<time>2016-05-10 17:56:10 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/~rjbs/perl-5.24.0/pod/perldelta.pod">http://search.cpan.org/~rjbs/perl-5.24.0/pod/perldelta.pod</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite>perldelta - search.cpan.org</cite>
(<time>2017-01-21 11:04:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/~shay/perl-5.24.1/pod/perldelta.pod">http://search.cpan.org/~shay/perl-5.24.1/pod/perldelta.pod</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">5分でわかる Perl and web security · GitHub</cite>
( (<time>2017-04-23 16:56:43 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://gist.github.com/mala/9bf56420da8841945ba69361dd086878">https://gist.github.com/mala/9bf56420da8841945ba69361dd086878</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite>オンプレDB、PerlのAIフレームワーク――ウェザーニューズが追求する「開発者とユーザー双方が幸せになれる技術」 | HRナビ by リクルート</cite>
(<time>2018-03-24 09:51:18 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://hrnabi.com/2018/03/23/16807/">http://hrnabi.com/2018/03/23/16807/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite>#59207 (perl5.28 build fails on Catalina with MacPorts 2.6.1 and Xcode 11.1) – MacPorts</cite>
(<time>2022-04-09T02:13:51.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://trac.macports.org/ticket/59207">https://trac.macports.org/ticket/59207</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite xml:lang="en-US">perlrun - how to execute the Perl interpreter - metacpan.org</cite>
(<time>2024-06-28T13:25:22.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://metacpan.org/dist/perl/view/pod/perlrun.pod">https://metacpan.org/dist/perl/view/pod/perlrun.pod</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 未だに「Perl」や「.pm」が名前に入ってるイベントがたまに開かれるのは不思議。そして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> 関連の発表はしないし参加者も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> を使っていなそうなのが謎。こういうのも一種のアレだよな、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文化の盗用</anchor>、はちょっと違うな。なんていうんだろう。 <time>2025-09-08T01:59:37.209Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> おそらく Perl がもっと人気があった時代から続く伝統のイベント名なのだろうけれども、今や少数勢力となった Perl を名乗りながら Perl と関係ないことをするのは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文化の盗用</anchor>という名前で言及される多数派による少数派の文化の表層的な借用による概念の上書きと共時的な構造は同じなんだよね。本当に Perl について語りたい人、 Perl の情報を探してる人にとってはノイズでしかなく、 Perl という文化の存在が多数派によって暴力的に希薄化されている加害者なのにその自覚が皆無というのが凶悪。 <time>2025-09-08T02:03:37.695Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl7</anchor></p></section></body></html>