ハッシュのリファレンス

Perl › リファレンス › here Perlにはハッシュのリファレンスというデータ構造が頻繁に登場します。このページでは、リファレンスの中からハッシュのリファレンスを詳しく取り上げます。 ハッシュのリファレンスとは ハッシュのリファレンスとは、ハッシュに…

バッククォート演算子 - 別プロセスを実行し標準出力を取得

Perl › 演算子 › here バッククォート演算子を使うと、別のプロセスを実行し、プロセスが生成した標準出力を取得することができます。 # バッククォート演算子 my $output = `$cmd`; system関数とかなりよく似ていますね。system関数が戻り値として、終了ス…

or演算子 - 優先順位が低い論理和

Perl › 演算子 › here orはPerlの論理演算子のひとつで、論理和を表現します。||と意味は同じですが、orの方が演算子の優先順位が低く、文と文の間に利用するのが一般的です。 文1 or 文2 このように記述すると、文1が偽を返したときに、文2が実行されます。…

system関数 - 別プロセスを実行する

Perl › 関数 › here system関数を使うと、別のプロセスを実行することができます。 system $cmd; プロセスが正常に終了した場合は0が戻り値として返されます。エラーチェックは次のように行うことができます。tarやgzipなどのコマンドを実行したい場合はsyst…

デストラクタ - DESTROY

Perl › 構文・文法 › here Perlはリファレンスカウント方式のGCを持つプログラミング言語です。オブジェクトが解放されるのは、リファレンスカウントが0になった場合です。DESTROYというメソッドを実装することで、リファレンスカウントが0になるタイミング…

正規表現の囲み文字を変更する - m//

Perlでは正規表現の囲み文字を変更することができます。正規表現はパターンマッチ演算子を組み合わせて以下のように書くことができましたね。 $string =~ /cat/ でもここで、たとえば、URLのパスにマッチさせたい場合を考えてみてください。スラッシュをエス…

デフォルト変数 $_

Perl › 特殊変数 › here Perlにはデフォルト変数というものが存在します。 $_ デフォルト変数が利用されるいくつかの例を最初に見てみます。 grep関数 grep関数に渡された配列のそれぞれの要素は、デフォルト変数に代入されます。 my @values2 = grep { $_ e…

kill関数 - プロセスにシグナルを送信する

Perl › 関数 › here kill関数を使用すると、プロセスを終了させることができます。 kill(シグナル番号, プロセスID); 第一引数には、シグナル番号を指定します。第二引数には、プロセスIDを指定します。戻り値は、kill関数が成功した数が返ってきます。以下…

do〜while文 - 繰り返しの処理、最初に必ず実行

Perl › 構文 › while文 do〜while文を使うと、繰り返しの処理を記述できます。while文とは異なりdoブロックで記述された部分は、必ず最初に一回実行されます。 do { # 繰り返す処理 } while (条件) do〜while文は非推奨 do〜while文を使うことは非推奨です。…

unpack関数 - パックされたデータを復元する

Perl › 関数 › here unpack関数を使用するとpack関数でバイナリ形式にパックしたデータを復元することができます。 my @values = unpack($format, $packed); 第一引数は、フォーマットです。第二引数はパックされたデータ。戻り値は、復元されたデータが配列…

YAPC::Okinawa 2018のトークの応募の締め切りは12/28(木)までのようです。お忘れなく。

YAPC::Okinawa 2018のトークの応募の締め切りは12/28(木)までのようです。お忘れなく。申し込みは、タイトル1行と、概要を複数行でよい感じです。僕も、先日トークの締め切り日に気づき、本日トークに申し込みました。受かるといいな。 YAPC::Okinawa 2018 O…

pack関数 - データをバイナリ形式にパックする

Perl › 関数 › here pack関数は、データをさまざまなバイナリ形式にパックします。 my $packed = pack($format, @values); 第一引数はバイナリ形式のデータフォーマットを指定します。第二引数以降は、値のリストを指定します。戻り値は、パックされたデータ…

Perlゼミ新着情報

2018年8月21日(火) Perlのインストール方法 - Windws、macOS、Linux対応を公開しました。 昨日は天津飯を作っていたのだけれど、妻に、フライパンの中で焼いている卵を見ておいてといわれたから、本当にただ見ていたら、めっちゃ焦げた。裏返さんとアカンか…

Perl Advent Calendar 2017 2日目「SPVMという言語について語る」

この記事は、Perl Advent Calender 2日目の記事です。1日目はK君でしたね。先週は妻の実家に帰っていて、甥っ子ちゃんと遊びました。そのあと、カラオケいって、バッティングセンター行ったら、ちょっと疲れて風邪をひいちゃいました。さて、本題へ。 SPVMの…

SPVMロードマップ - ついにこれからJITの実装に入れそう

開発を始めてからもう少しで1年を立とうかという「ほぼPerl風静的言語SPVM」がJITの実装に入れそうだ。いろんな言語にJITの実装があるけれど、Perlはないなぁと、感じているあなた。PerlでJITやります!正確にいうとPerlではないけれど、ほぼPerl文法で記述で…

return関数 - 戻り値の返却

Perl › 関数 › here return関数を使うとサブルーチンの戻り値を返却することができます。 return 戻り値 実際に使用する場合は、returnをサブルーチンの中で記述します。 sub sum { my ($num1, $num2) = @_; my $total = $num1 + $num2; # 戻り値の返却 retu…

【記事紹介】ウェブサービス型CMS「MovableType.net」を体験!ハンズオンセミナー【11月14日(火)開催】

11月14日(火)にクラウド型ブログサービスMovableType.netのハンズオンセミナーが参加費無料であるようなので紹介。 ウェブサービス型CMS「MovableType.net」を体験!ハンズオンセミナー【11月14日(火)開催】 先日ワークフロー機能が搭載されたウェブサー…

新刊「かんたんIT基礎講座シリーズ Perlではじめる プログラミング超入門」

技術評論社さんからPerlの新刊が出たようなので、紹介。著者は、高橋順子さん。女性の方だ。2017年10月24日発売。 かんたんIT基礎講座シリーズ Perlではじめる プログラミング超入門 「かんたんIT基礎講座」シリーズのPerl入門書で,2011年発売の「ゼロから…

SPVMのJIT実装をこれから始める

Perlの数値計算を速くするために、研究・開発しているSPVMプロジェクト。現在は、バイトコード実装なのですが、もうすこしで、JIT実装を始められそう。実行時にコンパイルして、すべてを機械語にする。 目標はC言語のパフォーマンス 目標はC言語で「-O3」で…

oct関数 - 8進数文字列を10進数の数値に変換

Perl › 関数 › here oct関数を使用すると8進数文字列を10進数の数値に変換することができます。 8進数から10進数への変換 8進数から10進数へ変換するにはoct関数を使用します。 my $digit = oct('755'); 8進数の755は10進数の493になります。上のサンプルで…

hex関数 - 16進数文字列を10進数の数値に変換

Perl › 関数 › here hex関数を使用すると16進数文字列を10進数の数値に変換することができます。 16進数から10進数への変換 16進数から10進数へ変換するにはhex関数を使用します。 my $digit = hex('FF'); 16進数のFFは10進数の255になります。サンプルでは'…

【記事紹介】LINE株式会社の広告配信 データサイエンティストとPerlエンジニアの連携

LINE株式会社の広告配信のシステムでデータサイエンティストとエンジニアの連携いう記事を見つけたので紹介します。 エンジニアとデータサイエンティストが連携し、ユーザーフレンドリーな広告を配信――「LINE Ads Platform」最適化の舞台裏とは? 開発チーム…

明日の10月20日(金)吉祥寺.pmのハッシュタグは#kichijojipm

明日は吉祥寺.pmですね。ハッシュタグは#kichijojipm。ツイート実況します。 10月20日(金) 吉祥寺.pm 12

10月20日(金)吉祥寺.pmのスライド「Perl Mongerが不動産屋で学んだこと」が完成しました

1週間後に迫った、10月20日(金)吉祥寺.pmのスライド「Perl Mongerが不動産屋で学んだこと」が完成しました。 10月20日(金) 吉祥寺.pm 12 気がつけば12回目、なんと3周年!! そしてゲストはfrom Okinawa.pm!! 今回はOkinawa.pmからCodeHex氏が参戦する、コラボ…

【YAPC::Okinawa】本サイト公開しました! - 記事紹介

Perlだけではなく、さまざまな技術の話題が聞ける技術カンファレンス「YAPC::Okinawa」の準備が整ってきたようですね。今年は沖縄です。YAPC::Okinawaのサイトが公開されたようです。サイトデザインは、オーシャンブルー、海ーって感じできれいですね! アナ…

Perlは30歳になり、コミュニティは繁栄し続ける

「Perlは30歳になり、コミュニティは繁栄し続ける」という記事が、Perlの30年の歴史、Perlのコミュニティ、Perlの発展についてわかりやすく書かれていたので、紹介します。 Perlは30歳になり、コミュニティは繁栄し続ける Larry Wallは1987年12月18日にcomp.…

SPMVの言語仕様策定までの道程表

SPVMの実装と言語仕様を作成している。SPVMはPerlに静的言語の機能を組み込むプロジェクトだ。Perlで数値計算を行うことができるようになることが目標だ。 SPVM言語仕様 実装できていない部分 実装状況は80%くらい。残りの部分は次の部分。 パッケージ変数 …

continueブロック - 条件が再評価される直前に実行

Perl › 構文 › here continueブロックを使うと、条件分が再評価される直前に実行されるブロックを定義することができます。以下のように記述すると、次の条件に移行する前の処理を書くことができます。 while (条件) { ... } continue { ... } この構文を使…

readdir関数 - ディレクトリの内容を読み込む

Perl › 関数 › here ディレクトリの内容を読み込むにはreaddir関数を使用します。 readdir ディレクトリハンドル ディレクトリハンドルはopendir関数によって取得されたものを指定します。戻り値として、ディレクトリの中にあるファイル名が返されます。繰り…

opendir関数 - ディレクトリをオープンする

Perl › 関数 › here opdndir関数を使うと、ディレクトリをオープンしてディレクトリハンドルを取得することができます。 opendir ディレクトリハンドル ディレクトリ名 ディレクトリハンドルには、未定義の変数を指定します。opendir関数は、以下のように使…