Perlの食えない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
すっかり季節は年度末ですね〜。なんと明後日には新年度で新入社員が入社してくるぞ!! ということで新卒研修の準備に追われてる今日この頃ですが、みなさまいかがお過ごしでしょうか。 さて、研修準備も長々やると疲れてくるのでちょっと現実逃避に…というわけではないんですが、最近horensoというGoogleじゃないほうのcronなどでコマンドをwrapして成功失敗の通知を仕組み化するツール(詳しくは作者のSongmuさんのブログをご参照ください)用にSlack Reporterを書きました。ちなみにGoogleのhorensoは漢字入力システムです。 で、きっと今どきのWeb系の会社はSlack使ってるところ多いし、社内の各プロジェクトで汎用的に使えるように作ったから勢いよく全世界に公開しておくか〜と思った次第なので、この記事を(現実逃避に)書いてます。この前とある勉強会に行ったときも自席から前側
これまでPerlを利用した手元開発環境でどのようにcronを動かすか迷ってきたのだけど、その解決策が見つかったのでメモ。 課題 開発サーバや本番サーバではcronで定期的にスクリプトが実行されている 定期的に実行されているスクリプトが動かないと、正しく動かない機能がある 例えば予約投稿みたいな機能など しかし手元開発環境ではcronのように定期的にスクリプトを実行していなかった 結果として、手元開発環境で手動でスクリプトを動かさないと確認できない機能があった 解決策として手元でもcrontabを書く方法もあるのだけど、この場合開発していない時も勝手に実行されるので避けたかった。 解決方法 実はProclet というツールに、サーバを起動しながら定期的に指定したコードを実行してくれる機能があるということに気づいた。詳しくはSYNOPSISを参照。 これを使ってcronに指定しているスクリプト
Perlの関数には引数を省略した場合に$_が引数として与えられたものとして振る舞う関数があるが、この性質を使うと気持ち悪いほどHaskellっぽいコードをPerlで書くことができる。 逆に、自分のようなPerlプログラマーがHaskellに入門する時は、「あーここでは$_が省略されてんのね」って考えるとポイントフリー記法とか理解しやすいと思った。 map まずは基本中の基本のmap。 Perl $, = ","; ## リスト出力のセパレータ (以下同様) $\ = "\n"; ## 出力行の末尾 (以下同様) my @fruits = qw(apple orange strawberry); print map { length } @fruits; # => 5,6,10
Perl › モジュール › here XML::Simpleモジュールを使うと簡単にXMLを解析してPerlのデータ構造に変換することができます。XMLの解析手法には「先頭から順次解析を行うSAX」と「XMLツリー構造を構築するDOM」が有名ですが、簡単に扱うという点では、XML::Simpleが一番です。 XMLはテキストファイルにデータを記述するときの一般的なフォーマットです。プログラムの設定ファイルを記述するときなどに利用することができます。 # モジュールの読み込みとオブジェクトの生成 use XML::Simple; my $xml = XML::Simple->new; XMLファイルを読み込むにはXMLinメソッドを使用します。XMLはPerlのデータ構造(多次元のハッシュや配列)に変換されます。 # XMLファイルのパース my $data = $xml->XMLin('
これ何 Perl で MeCab や CaboCha を使う際の適当にメモ MeCab に関しては情報が多いが CaboCha はあまり無いので Mac + Perl でしたい方は気持ち参考にして頂けたらと思う 特に自然言語処理の研究がメインではないが、文書構造など適度に取得して使いたい分野 全く触れた事無い人でも便利ライブラリを使う事で以下のように色々遊べる 書く人が書けば以下のような適当なのでもブクマ稼げる 例 Twitter から tweet を取得し、MeCab で形容詞抽出語に公開資源/日本語評価極性辞書 - 東北大学 乾・岡﨑研究室を使ってハッシュタグ毎の感性分析を行う 注目ハッシュタグの中からハッピー度合い計算して取り上げるようなサービス MeCab で名詞のみ抽出し、BagOfWords としてベイジアンフィルタにかけてスパム判定,LDA 使ってトピック推定 CaboCha
この記事は、Perl Advent Calendar 2014 - Qiita の6日目の記事です。(※初学者向け) シュッと変数の様子を見る Perlでプログラムを書いていて、「ここの変数なにが入ってるのかな?」と調べたい場合、このようにprintで表示させるプログラムを書くと use strict; use warnings; my @array = (1, 2, 3, 4, 5); my $array_ref = [@array]; my %hash = ( name => "tarou", age => 20, ); my $hash_ref = {%hash}; print @array, "\n"; # => 12345 print %hash, "\n"; # => nametarouage20 print $array_ref, "\n"; # => ARRAY(0x7fd
Inspired by how scandalously Unicode-deficient the otherwise fine 4-way polyglot table comparing PHP, Perl, Python, and Ruby is at http://hyperpolyglot.org/scripting I created a quick Unicode cheatsheet for Perl, mostly by mining the examples in the new 4th edition of the came. Gee, I foresee a *whole* lot of "impossibles" in the other three languages' columns, don't you? :) Hm, have I left anythi
Perl › 文字コード › Unicode › コードポイント ある文字のユニコードのコードポイントを知りたい場合は、次のようにします。utf8プラグマは有効にして、ソースコードをUTF-8で保存する必要があります。 use utf8; my $str = 'あ'; # 十六進数として表示 printf "%x\n", ord($str); ord関数で文字のコードポイントを知ることができます。printf関数で%xというフォーマット指定をして16進数で表示しています。 出力結果は以下のようになり「あ」という文字のコードポイントは3042であることがわかります。 3042 Data::Dumperで簡易的に調べる Data::Dumperモジュールを使って簡易的に調べる方法もあります。Data::DumperはASCIIの範囲でない文字であれば、内部文字列を出力するときに、コードポイント
Perlの5.8以降では、割と簡単にUnicodeが使えるようになっています。 自分の備忘録も兼ねて、簡単に使い方をまとめておきます。 Perlのsource codeをUnicodeで書く Source codeをBOM(byte order mask)なしのutf8で書きます。 そして、次のように"use utf8;"と書いておけば、とりあえず source code内でUnicode文字列を扱うことができます。 #!/usr/bin/perl use utf8; #use strict; $somevar = "漢字の文字列"; $somevar = "\x{3042}\x{3044}\x{3046}"; ## "あいう" 標準入出力の文字code 上記のようにすれば、source codeをUnicodeで書くことはできます。 しかし、このままでは文字列をprintするとutf8の
Session Fixation XSS や事前に取得したセッションを利用者に送り込んで権限を昇格させる類の攻撃で、セッションIDをクエリに含ませたり、シーケンシャルなセッションIDを用いるような愚かなことをしなければ基本的に問題はないものの、 Session Fixation への根本的な対策として、ログイン成功後にこれまでのセッションを破棄し、新しいセッションを発行することが望ましい。 Session Fixation について詳しいことは IPA の出している『安全なウェブサイトの作り方(pdf)』改定第4版 p.15 から p.20 に説明があります。 0.13 今まで P::M::Session ではログイン成功後に新しくセッションを開始するのにちょっとした細工が必要でしたが、 0.13 からは古いセッションの破棄とあたらしいセッションの発行を、 $request->env->{
すき焼きの食材を買って帰ったはいいものの突然修正しなくてはいけないコードが降ってきまして〜 自炊する時間がなくてしょうがなく 最高のラーメン を食べたゆーすけべーです。 今回はMojoliciousのセッションについてのお話。もともと備わっているMojoliciousのセッションを使うにはこのような操作をします。 #!/usr/bin/env perl use Mojolicious::Lite; app->secret('passphrase'); get '/' => sub { my $self = shift; $self->session->{count}++; $self->stash->{count} = $self->session->{count}; $self->render('index'); }; app->start(); __DATA__ @@ index.ht
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く