Mojo::ByteStream - バイトストリーム
使い方
use Mojo::ByteStream; # バイトストリームの操作 my $stream = Mojo::ByteStream->new('foo_bar_baz'); say $stream->camelize; # チェーンメソッド my $stream = Mojo::ByteStream->new('foo bar baz')->quote; $stream = $stream->unquote->encode('UTF-8')->b64_encode(''); say "$stream"; # もうひとつのコンストラクタを使用 use Mojo::ByteStream 'b'; my $stream = b('foobarbaz')->b64_encode('')->say;
説明
Mojo::ByteStreamは、Mojo::Utilの多くの関数に対してより便利なAPIを提供するための、バイトストリームのためのスカラのコンテナです。
# Access scalar directly to manipulate bytestream my $stream = Mojo::ByteStream->new('foo'); $$stream .= 'bar';
関数
Mojo::ByteStreamは次の関数を実装しています。個々にインポートすることも可能です。
b
my $stream = b('test123');
新しいMojo::ByteStreamオブジェクトを生成します。
メソッド
Mojo::ByteStreamは次のメソッドを実装しています。
b64_decode
$stream = $stream->b64_decode;
Mojo::Utilのb64_decode
を使って、バイトストリームをBase64デコードします。
b64_encode
$stream = $stream->b64_encode; $stream = $stream->b64_encode('');
Mojo::Utilのb64_encode
を使って、バイトストリームをBase64エンコードします。
b('foo bar baz')->b64_encode('');
camelize
$stream = $stream->camelize;
Mojo::Utilのcamelize
を使って、バイトストリームをキャメライズします。
clone
my $stream2 = $stream->clone;
バイトストリームを複製します。
decamelize
$stream = $stream->decamelize;
Mojo::Utilのdecamelize
を使って、バイトストリームをデキャメライズします。
decode
$stream = $stream->decode; $stream = $stream->decode('iso-8859-1');
Mojo::Utilのdecode
を使ってバイトストリームをデコードします。 デフォルトはUTF-8
です。
# "♥" b('%E2%99%A5')->url_unescape->decode;
encode
$stream = $stream->encode; $stream = $stream->encode('iso-8859-1');
Mojo::Utilのencode
を使って、バイトストリームをエンコードします。 デフォルトはUTF-8
です。
# "%E2%99%A5" b('♥')->encode->url_escape;
gunzip
$stream = $stream->gunzip; Mojo::Utilの「gunzip」を使って、バイトストリームを展開します。
gzip
stream = $stream->gzip;
Mojo::Utilの「gzip」を使って、バイトストリームを圧縮します。
hmac_sha1_sum
$stream = $stream->hmac_sha1_sum($secret);
Mojo::Utilのhmac_sha1_sum
を使って、 バイトストリームのためにHMAC-SHA1チェックサムを生成します。
# "7fbdc89263974a89210ea71f171c77d3f8c21471" b('foo bar baz')->hmac_sha1_sum('secr3t');
html_unescape
$stream = $stream->html_unescape;
Mojo::Utilのhtml_unescape
を使って、 すべてのHTMLエンティティをアンエスケープします。
# "%3Chtml%3E" b('<html>')->html_unescape->url_escape;
md5_bytes
$stream = $stream->md5_bytes;
Mojo::Utilのmd5_bytes
を使って、 バイトストリームのためにバイナリのMD5を生成します。
md5_sum
$stream = $stream->md5_sum;
Mojo::Utilのmd5_sum
を使って、 バイトストリームのためにMD5を生成します。
new
my $stream = Mojo::ByteStream->new('test123');
新しいMojo::ByteStreamオブジェクトを生成します。
punycode_decode
$stream = $stream->punycode_decode;
Mojo::Utilのpunycode_decode
を使って、 バイトストリームをPunycodeデコードします。
punycode_encode
$stream = $stream->punycode_encode;
Mojo::Utilのpunycode_encode
を使って、 バイトストリームをPunycodeエンコードします。
quote
$stream = $stream->quote;
Mojo::Utilのquote
を使って、 バイトストリームをクォートします。
say
$stream = $stream->say; $stream = $stream->say(*STDERR);
バイトストリームをハンドルかSTDOUT
に出力し、新しい改行を追加します。
secure_compare
my $bool = $stream->secure_compare($str);
Mojo::Utilのsecure_compare
を使って、 バイトストリームを比較します。
sha1_bytes
$stream = $stream->sha1_bytes;
Mojo::Utilのsha1_bytes
を使って、バイトストリームのためにバイナリのSHA1チェックサム を生成します。
sha1_sum
$stream = $stream->sha1_sum;
Mojo::Utilのsha1_sum
を使って、バイトストリームのためにSHA1チェックサム を生成します。
size
my $size = $stream->size;
バイトストリームのサイズです。
slugify
$stream = $stream->slugify; $stream = $stream->slugify($bool);
Mojo::Utilの「slugify」を使って、バイトストリームのためのURLのスラグを生成します。
split
my $collection = $stream->split(','); my $collection = $stream->split(',', -1);
バイトストリームを、複数のMojo::ByteStreamオブジェクトを含むMojo::Collectionオブジェクトに変換します。
# "One,Two,Three" b("one,two,three")->split(',')->map('camelize')->join(','); # "One,Two,Three,,," b("one,two,three,,,")->split(',', -1)->map('camelize')->join(',');
split
my $collection = $stream->split(','); my $collection = $stream->split(',', -1);
バイトストリームをMojo::ByteStreamオブジェクトを含んだMojo::Collectionオブジェクトに変換します。
# "One,Two,Three" b("one,two,three")->split(',')->map('camelize')->join(','); # "One,Two,Three,,," b("one,two,three,,,")->split(',', -1)->map('camelize')->join(',');
tap
$stream = $stream->tap(sub {...});
Mojo::Baseのtap
の別名。
term_escape
$stream = $stream->term_escape;
Mojo::Utilのterm_escape
を使って、 バイトストリームの中のPOSIXのコントロール文字をエスケープ
# バイナリチェックサムをターミナルに出力 b('foo')->sha1_bytes->term_escape->say;
to_string
# "%E2%98%83" b('☃')->encode->url_escape;
バイトストリームを文字列化します。
trim
$stream = $stream->trim;
Mojo::Utilのtrim
を使って、 バイトストリームの両端から空白を取り除きます。
unindent
$stream = $stream->unindent;
[Mojo::Util]]のunindent
を使って、バイトストリームをアンインデントします。
unquote
$stream = $stream->unquote;
Mojo::Utilのunquote
を使って、バイトストリームを アンクォートします。
url_escape
$stream = $stream->url_escape; $stream = $stream->url_escape('^A-Za-z0-9\-._~');
Mojo::Utilのurl_escape
を使って、 バイトストリームの中のすべての安全でない 文字をパーセントエンコードします。
b('foo bar baz')->url_escape->say;
url_unescape
$stream = $stream->url_unescape;
Mojo::Utilのurl_unescape
を使って、 パーセントエンコードされた文字をデコードします。
# "<html>" b('%3Chtml%3E')->url_unescape->xml_escape;
with_roles
my $new_class = Mojo::ByteStream->with_roles('Mojo::ByteStream::Role::One'); my $new_class = Mojo::ByteStream->with_roles('+One', '+Two'); $stream = $stream->with_roles('+One', '+Two');
Mojo::Baseの「with_roles」のエイリアス。
xml_escape
$stream = $stream->xml_escape;
Mojo::Utilのxml_escape
を使って、 バイトストリームの中の &
, <
, >
, '
という文字だけをエスケープします。
xor_encode
$stream = $stream->xor_encode($key);
Mojo::Utilのxor_encode
を使って、バイトストリームをXORエンコードします。
# "%04%0E%15B%03%1B%10" b('foo bar')->xor_encode('baz')->url_escape;
演算子
Mojo::ByteStreamは次の演算子をオーバーロードしています。
bool
my $bool = !!$bytestream;
いつでも真です。
stringify
my $str = "$bytestream";
to_string
の別名。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映)