<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
 <channel>
  <title>語句ログ - ニュース、プログラミング、システムトレードの用語解説</title>
  <link>https://59log.com/</link>
  <description>日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説</description>
  <lastBuildDate>Tue, 05 May 2026 00:46:28 +0900</lastBuildDate>
  <pubDate>Tue, 05 May 2026 00:46:28 +0900</pubDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>59Tracker 3.2</generator>
  <item>
    <title>[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコード</title>
    <description>&lt;p&gt;1バイト(8bit)の10進数を2進数の文字列に変換するコードのC言語版です。&lt;/p&gt;&lt;p&gt;C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演算子を使ってビットのオン・オフを判定して、2進文字列を作成していくしかありません。&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;src_preprocessor&quot;&gt;#include&amp;nbsp;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;src_preprocessor&quot;&gt;#include&amp;nbsp;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;src_keyword&quot;&gt;void&lt;/span&gt;&amp;nbsp;dec2bin(&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;src,&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;*dest);&lt;br&gt;&lt;br&gt;&lt;span class=&quot;src_keyword&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;int&lt;/span&gt;&amp;nbsp;buf_size&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;9&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;src_typekeyword&quot;&gt;int&lt;/span&gt;&amp;nbsp;main(&lt;span class=&quot;src_keyword&quot;&gt;void&lt;/span&gt;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;buf[buf_size];&amp;nbsp;&lt;span class=&quot;src_multilinecomment&quot;&gt;/*&amp;nbsp;変換後の2進文字列を受け取るための領域&amp;nbsp;*/&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;src_multilinecomment&quot;&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char&amp;nbsp;str1[]&amp;nbsp;=&amp;nbsp;&amp;quot;abcdefg&amp;quot;;&amp;nbsp;*/&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;str1[]&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;src_doublequotation&quot;&gt;&amp;quot;あいうえお&amp;quot;&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;*cp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;int&lt;/span&gt;&amp;nbsp;num&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;1&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_keyword&quot;&gt;for&lt;/span&gt;&amp;nbsp;(cp&amp;nbsp;=&amp;nbsp;str1;&amp;nbsp;*cp;&amp;nbsp;cp++)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_multilinecomment&quot;&gt;/*&amp;nbsp;文字数分処理&amp;nbsp;*/&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(buf,&amp;nbsp;&lt;span class=&quot;src_singlequotation&quot;&gt;'\0'&lt;/span&gt;,&amp;nbsp;&lt;span class=&quot;src_keyword&quot;&gt;sizeof&lt;/span&gt;(buf));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dec2bin(*cp,&amp;nbsp;buf);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(&lt;span class=&quot;src_doublequotation&quot;&gt;&amp;quot;%d:%s&amp;nbsp;(0x%02.2X)\n&amp;quot;&lt;/span&gt;,&amp;nbsp;num,&amp;nbsp;buf,&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;0x000000f&lt;/span&gt;f&amp;nbsp;&amp;amp;&amp;nbsp;*cp);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;num++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_keyword&quot;&gt;return&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;0&lt;/span&gt;;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;span class=&quot;src_multilinecomment&quot;&gt;/*&amp;nbsp;1Byte(8bit)の10進数を2進数の文字列に変換&amp;nbsp;*/&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;src_keyword&quot;&gt;void&lt;/span&gt;&amp;nbsp;dec2bin(&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;src,&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;char&lt;/span&gt;&amp;nbsp;*dest)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_keyword&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;int&lt;/span&gt;&amp;nbsp;bit_size&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;8&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_typekeyword&quot;&gt;int&lt;/span&gt;&amp;nbsp;i;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;src_keyword&quot;&gt;for&lt;/span&gt;&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;bit_size;&amp;nbsp;i++)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dest[i]&amp;nbsp;=&amp;nbsp;(&lt;span class=&quot;src_digit&quot;&gt;0x80&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;nbsp;src)&amp;nbsp;?&amp;nbsp;&lt;span class=&quot;src_singlequotation&quot;&gt;'1'&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span class=&quot;src_singlequotation&quot;&gt;'0'&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;src&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;&lt;span class=&quot;src_digit&quot;&gt;1&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797327901/aaaaaaee-22/ref=nosim&quot;&gt;解きながら学ぶC言語&lt;/a&gt;&lt;br /&gt;&lt;small&gt;ソフトバンククリエイティブ  著者：柴田 望洋,肘井 真一,高木 宏典,赤尾 浩  &lt;font color=&quot;#66ccff&quot;&gt;&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797327901/aaaaaaee-22/ref=nosim&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/516WRDSAFQL.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797327901/aaaaaaee-22/ref=nosim&quot; target=&quot;_blank&quot;&gt;amazon.co.jpのカスタマーレビューを見る&lt;/a&gt;&lt;br /&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2253#link&quot; target=&quot;_blank&quot;&gt;Link(6)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2253#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2253#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=C%E8%A8%80%E8%AA%9E&quot; title=&quot;C言語&quot;&gt;C言語&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B3%E3%83%BC%E3%83%89&quot; title=&quot;コード&quot;&gt;コード&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=2%E9%80%B2%E6%95%B0&quot; title=&quot;2進数&quot;&gt;2進数&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&quot; title=&quot;プログラミング&quot;&gt;プログラミング&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2253</link>
    <pubDate>Fri, 21 Dec 2012 17:23:17 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]UTF-8でエンコードされた文字列の部分文字列を取り出すコード</title>
    <description>&lt;p&gt;Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字として部分文字列を取り出すことができる関数を作成します。&lt;/p&gt;&lt;p&gt;以下はそのコードです。&lt;a href=&quot;http://59log.com/detail2243.html&quot; target=&quot;_blank&quot;&gt;[Perl]UTF-8でエンコードされた文字列の文字数を取得するコード&lt;/a&gt;と同様に、文字の1バイト目のビットの状態を調べることによってその文字が何バイト文字を判定しています。&lt;/p&gt;&lt;p&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use&amp;nbsp;strict;&lt;br&gt;use&amp;nbsp;warnings;&lt;br&gt;&lt;br&gt;my&amp;nbsp;$testStr&amp;nbsp;=&amp;nbsp;&amp;quot;ABCDEFGあいうえおアイウエオ愛夢佐々木&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;substr_utf8($testStr,&amp;nbsp;0,&amp;nbsp;5)&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;substr_utf8($testStr,&amp;nbsp;0,&amp;nbsp;5),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;substr_utf8($testStr,&amp;nbsp;3,&amp;nbsp;3)&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;substr_utf8($testStr,&amp;nbsp;3,&amp;nbsp;3),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;substr_utf8($testStr,&amp;nbsp;10,&amp;nbsp;4)&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;substr_utf8($testStr,&amp;nbsp;10,&amp;nbsp;4),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;substr_utf8($testStr,&amp;nbsp;13,&amp;nbsp;5)&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;substr_utf8($testStr,&amp;nbsp;13,&amp;nbsp;5),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;substr_utf8($testStr,&amp;nbsp;13)&amp;nbsp;=&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;substr_utf8($testStr,&amp;nbsp;13),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;#&amp;nbsp;UTF-8でエンコードされた文字列の部分文字列を取り出す&lt;br&gt;#&amp;nbsp;substr_utf8&amp;nbsp;(文字列式,&amp;nbsp;オフセット[,&amp;nbsp;長さ]）長さを指定しなかった場合は最後まで&lt;br&gt;sub&amp;nbsp;substr_utf8&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($src,&amp;nbsp;$offset,&amp;nbsp;$len)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$srclen&amp;nbsp;=&amp;nbsp;length($src);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$pos&amp;nbsp;=&amp;nbsp;0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$count&amp;nbsp;=&amp;nbsp;0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$dest&amp;nbsp;=&amp;nbsp;'';&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;($pos&amp;nbsp;&amp;lt;&amp;nbsp;$srclen)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$code&amp;nbsp;=&amp;nbsp;ord&amp;nbsp;substr($src,&amp;nbsp;$pos,&amp;nbsp;1);&amp;nbsp;#&amp;nbsp;先頭のASCIIコード値を取得&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bytelen&amp;nbsp;=&amp;nbsp;_bytesize($code);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(defined($len)){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($count&amp;nbsp;&amp;gt;=&amp;nbsp;$offset&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;$count&amp;nbsp;&amp;lt;&amp;nbsp;($offset&amp;nbsp;+&amp;nbsp;$len))&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$dest&amp;nbsp;.=&amp;nbsp;substr($src,&amp;nbsp;$pos,&amp;nbsp;$bytelen);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{&amp;nbsp;#&amp;nbsp;長さ指定なし&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;($count&amp;nbsp;&amp;gt;=&amp;nbsp;$offset)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$dest&amp;nbsp;.=&amp;nbsp;substr($src,&amp;nbsp;$pos,&amp;nbsp;$bytelen);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$pos&amp;nbsp;+=&amp;nbsp;$bytelen;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$count++;&amp;nbsp;#&amp;nbsp;文字数をカウント&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$dest;&lt;br&gt;}&lt;br&gt;&lt;br&gt;#&amp;nbsp;文字のバイト長を求める&lt;br&gt;sub&amp;nbsp;_bytesize&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$code&amp;nbsp;=&amp;nbsp;shift;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$size&amp;nbsp;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code)&amp;nbsp;{&amp;nbsp;#&amp;nbsp;1バイト文字以外&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;my&amp;nbsp;$i&amp;nbsp;(2&amp;nbsp;..&amp;nbsp;8)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$size++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;last&amp;nbsp;if&amp;nbsp;(!(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$size;&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;substr_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、_bytesize関数を呼び出して文字のバイト数を求め、その文字がパラメータで指定された範囲の場合は、戻り値として返す文字列に連結し、そうでなかった場合は文字数のカウントアップのみ行なっています。&lt;/p&gt;&lt;p&gt;_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し戻り値として返しています。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774150258/aaaaaaee-22/ref=nosim&quot;&gt;もっと自在にサーバを使い倒す 業務に役立つPerl (Software Design ｐlus)&lt;/a&gt;&lt;br /&gt;&lt;small&gt;技術評論社  著者：木本 裕紀  &lt;font color=&quot;#66ccff&quot;&gt;&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774150258/aaaaaaee-22/ref=nosim&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51d4T7m8NzL.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774150258/aaaaaaee-22/ref=nosim&quot; target=&quot;_blank&quot;&gt;amazon.co.jpのカスタマーレビューを見る&lt;/a&gt;&lt;br /&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2244#link&quot; target=&quot;_blank&quot;&gt;Link(4)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2244#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2244#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E9%83%A8%E5%88%86%E6%96%87%E5%AD%97%E5%88%97&quot; title=&quot;部分文字列&quot;&gt;部分文字列&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B3%E3%83%BC%E3%83%89&quot; title=&quot;コード&quot;&gt;コード&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2244</link>
    <pubDate>Thu, 13 Dec 2012 10:51:25 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]UTF-8でエンコードされた文字列の文字数を取得するコード</title>
    <description>&lt;p&gt;Perlのlength関数ではバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。&lt;/p&gt;&lt;p&gt;ブログなどのアプリケーションのテキスト処理ではそれでは不都合な場合もことも多いので、半角英数も全角文字（漢字、ひらがな、カタカナなど）も1文字としてカウントする関数を作成することにします。&lt;/p&gt;&lt;p&gt;UTF-8では、&lt;br&gt;&lt;br&gt;1バイト目の先頭ビットが0の場合は1バイト文字&lt;br&gt;1バイト目の先頭から3ビットが110の場合は2バイト文字&lt;br&gt;1バイト目の先頭から4ビットが1110の場合は3バイト文字&lt;br&gt;1バイト目の先頭から5ビットが11110の場合は4バイト文字&lt;br&gt;1バイト目の先頭から6ビットが111110の場合は5バイト文字&lt;br&gt;1バイト目の先頭から7ビットが1111110の場合は2バイト文字&lt;br&gt;&lt;br&gt;という仕様ですので、1バイト目のビットの状態を調べることによって、その文字が何バイトかを調べることができます。&lt;br&gt;&lt;/p&gt;&lt;p&gt;以下のコードでは、この仕様にもとづいて全角文字を含む文字列の文字数を取得しています。&lt;/p&gt;&lt;p&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use&amp;nbsp;strict;&lt;br&gt;use&amp;nbsp;warnings;&lt;br&gt;&lt;br&gt;my&amp;nbsp;$testAscii&amp;nbsp;=&amp;nbsp;&amp;quot;ABCDEFG&amp;quot;;&lt;br&gt;my&amp;nbsp;$testHira&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;quot;あいうえお&amp;quot;;&lt;br&gt;my&amp;nbsp;$testKata&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;quot;アイウエ&amp;quot;;&lt;br&gt;my&amp;nbsp;$testKanji&amp;nbsp;=&amp;nbsp;&amp;quot;愛々木&amp;quot;;&lt;br&gt;my&amp;nbsp;$testAll&amp;nbsp;=&amp;nbsp;&amp;quot;ABCDEFGあいうえおアイウエオ愛夢佐々木&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;length($testAscii)&amp;nbsp;=&amp;nbsp;&amp;quot;.length($testAscii),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;strlen_utf8($testAscii)&amp;nbsp;=&amp;nbsp;&amp;quot;.strlen_utf8($testAscii),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;length($testHira)&amp;nbsp;=&amp;nbsp;&amp;quot;.length($testHira),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;strlen_utf8($testHira)&amp;nbsp;=&amp;nbsp;&amp;quot;.strlen_utf8($testHira),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;length($testKata)&amp;nbsp;=&amp;nbsp;&amp;quot;.length($testKata),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;strlen_utf8($testKata)&amp;nbsp;=&amp;nbsp;&amp;quot;.strlen_utf8($testKata),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;length($testKanji)&amp;nbsp;=&amp;nbsp;&amp;quot;.length($testKanji),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;strlen_utf8($testKanji)&amp;nbsp;=&amp;nbsp;&amp;quot;.strlen_utf8($testKanji),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;print&amp;nbsp;&amp;quot;length($testAll)&amp;nbsp;=&amp;nbsp;&amp;quot;.length($testAll),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;print&amp;nbsp;&amp;quot;strlen_utf8($testAll)&amp;nbsp;=&amp;nbsp;&amp;quot;.strlen_utf8($testAll),&amp;nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;#&amp;nbsp;UTF-8でエンコードされた文字列の文字数を取得する。&lt;br&gt;sub&amp;nbsp;strlen_utf8&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($text)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$textlen&amp;nbsp;=&amp;nbsp;length($text);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$pos&amp;nbsp;=&amp;nbsp;0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$count&amp;nbsp;=&amp;nbsp;0;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;($pos&amp;nbsp;&amp;lt;&amp;nbsp;$textlen)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$code&amp;nbsp;=&amp;nbsp;ord&amp;nbsp;substr($text,&amp;nbsp;$pos,&amp;nbsp;1);&amp;nbsp;#&amp;nbsp;先頭のASCIIコード値を取得&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bytelen&amp;nbsp;=&amp;nbsp;_bytesize($code);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$pos&amp;nbsp;+=&amp;nbsp;$bytelen;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$count++;&amp;nbsp;#&amp;nbsp;文字数をカウント&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$count;&lt;br&gt;}&lt;br&gt;&lt;br&gt;#&amp;nbsp;文字のバイト長を求める&lt;br&gt;sub&amp;nbsp;_bytesize&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($code)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$size&amp;nbsp;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code)&amp;nbsp;{&amp;nbsp;#&amp;nbsp;1バイト文字以外&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$size++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;my&amp;nbsp;$i&amp;nbsp;(2&amp;nbsp;..&amp;nbsp;8)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;last&amp;nbsp;if&amp;nbsp;(!(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$size++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$size;&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;strlen_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、_bytesize関数を呼び出して文字のバイト数を求め、1文字分の処理を行うたびに文字数をカウントアップしています。&lt;/p&gt;&lt;p&gt;_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し戻り値として返しています。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774145386/aaaaaaee-22/ref=nosim&quot;&gt;ゼロからわかる Perl言語超入門&lt;/a&gt;&lt;br /&gt;&lt;small&gt;技術評論社  著者：高橋 順子  &lt;font color=&quot;#66ccff&quot;&gt;&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774145386/aaaaaaee-22/ref=nosim&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41cLYQHtnZL.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4774145386/aaaaaaee-22/ref=nosim&quot; target=&quot;_blank&quot;&gt;amazon.co.jpのカスタマーレビューを見る&lt;/a&gt;&lt;br /&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2243#link&quot; target=&quot;_blank&quot;&gt;Link(3)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2243#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2243#comment&quot; target=&quot;_blank&quot;&gt;Comment(1)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E6%96%87%E5%AD%97%E6%95%B0&quot; title=&quot;文字数&quot;&gt;文字数&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B3%E3%83%BC%E3%83%89&quot; title=&quot;コード&quot;&gt;コード&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2243</link>
    <pubDate>Wed, 12 Dec 2012 11:56:21 +0900</pubDate>
  </item>
  <item>
    <title>[PHP]10進数を2進文字列に変換するコード</title>
    <description>&lt;p&gt;PHPの場合は、ズバリ10進数を2進文字列に変換できるdecbin関数があるので、decbin関数を使用すればいいのですが、もちろん、&lt;a href=&quot;http://59log.com/detail2239.html&quot;&gt;Perlの場合&lt;/a&gt;と同様にビット演算で2進文字列に変換することもできます。以下は、そのサンプルコードです。&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;src_metakeyword&quot;&gt;&amp;lt;?php&lt;br&gt;&lt;br&gt;//&amp;nbsp;'A'のアスキーコード値を取得&lt;br&gt;$asciicode&amp;nbsp;=&amp;nbsp;ord('A');&lt;br&gt;&lt;br&gt;//&amp;nbsp;PHPのdecbin関数で2進文字列に変換し、sprintfで整形&lt;br&gt;$binarystr&amp;nbsp;=&amp;nbsp;sprintf(&amp;quot;%08.8s&amp;quot;,&amp;nbsp;decbin($asciicode));&lt;br&gt;print&amp;nbsp;$binarystr&amp;nbsp;.&amp;nbsp;&amp;quot;&amp;nbsp;(1)\n&amp;quot;;&amp;nbsp;//&amp;nbsp;for&amp;nbsp;debug&lt;br&gt;&lt;br&gt;//&amp;nbsp;ビット演算で2進文字列に変換&lt;br&gt;$binarystr&amp;nbsp;=&amp;nbsp;_binstr($asciicode);&lt;br&gt;print&amp;nbsp;$binarystr&amp;nbsp;.&amp;nbsp;&amp;quot;&amp;nbsp;(2)\n&amp;quot;;&amp;nbsp;//&amp;nbsp;for&amp;nbsp;debug&lt;br&gt;&lt;br&gt;function&amp;nbsp;_binstr($code)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;'';&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;($i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;$i&amp;nbsp;&amp;lt;&amp;nbsp;8;&amp;nbsp;$i++)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$str&amp;nbsp;.=&amp;nbsp;(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code)&amp;nbsp;?&amp;nbsp;'1'&amp;nbsp;:&amp;nbsp;'0';&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$str;&amp;nbsp;&lt;br&gt;}&lt;br&gt;?&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;このスクリプトをコマンドラインで実行すると次のように表示されます。&lt;/p&gt;&lt;p&gt;C:\xampp\htdocs\sample&gt;\xampp\php\php binstr.php&lt;br&gt;01000001 (1)&lt;br&gt;01000001 (2)&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797363185/aaaaaaee-22/ref=nosim&quot;&gt;PHPハンドブック (ハンドブックシリーズ)&lt;/a&gt;&lt;br /&gt;&lt;small&gt;ソフトバンククリエイティブ  著者：柏岡 秀男  &lt;font color=&quot;#66ccff&quot;&gt;&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797363185/aaaaaaee-22/ref=nosim&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41K7Q87RVIL.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4797363185/aaaaaaee-22/ref=nosim&quot; target=&quot;_blank&quot;&gt;amazon.co.jpのカスタマーレビューを見る&lt;/a&gt;&lt;br /&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2242#link&quot; target=&quot;_blank&quot;&gt;Link(1)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2242#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2242#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=PHP&quot; title=&quot;PHP&quot;&gt;PHP&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=2%E9%80%B2%E6%95%B0&quot; title=&quot;2進数&quot;&gt;2進数&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E5%A4%89%E6%8F%9B&quot; title=&quot;変換&quot;&gt;変換&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B3%E3%83%BC%E3%83%89&quot; title=&quot;コード&quot;&gt;コード&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2242</link>
    <pubDate>Tue, 11 Dec 2012 19:33:29 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]1バイト(8bit)の10進数を2進数の文字列に変換するコード</title>
    <description>&lt;p&gt;Perlの関数を使用して、以下の手順で10進数を2進文字列に変換することができます。&lt;br/&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;sprintf関数で10進数を16進文字列に変換&lt;/li&gt;&lt;li&gt;pack関数で16進文字列をバイナリーにパック&lt;/li&gt;&lt;li&gt;unpack関数で2進文字列に変換&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;例えば、文字列の先頭文字のASCIIコード値（10進数）を取得し、それを2進文字列に変換に変換する場合は、次のようなコードになります。&lt;/p&gt;&lt;p&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use&amp;nbsp;strict;&lt;br&gt;use&amp;nbsp;warnings;&lt;br&gt;&lt;br&gt;my&amp;nbsp;$ascii&amp;nbsp;=&amp;nbsp;&amp;quot;ABC&amp;quot;;&lt;br&gt;my&amp;nbsp;$asciicode&amp;nbsp;=&amp;nbsp;ord&amp;nbsp;$ascii;&amp;nbsp;&amp;nbsp;#&amp;nbsp;先頭文字のASCIIコード値を取得&lt;br&gt;my&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;_bitstr($asciicode,&amp;nbsp;8);&lt;br&gt;print&amp;nbsp;&amp;quot;str&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;$str\n&amp;quot;;&amp;nbsp;#&amp;nbsp;for&amp;nbsp;debug&lt;br&gt;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;#&amp;nbsp;10進数を2進文字列に変換する関数&lt;br&gt;sub&amp;nbsp;_bitstr&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($code,&amp;nbsp;$len)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$hexcode&amp;nbsp;=&amp;nbsp;sprintf(&amp;quot;%X&amp;quot;,&amp;nbsp;$code);&amp;nbsp;#&amp;nbsp;16進に変換&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bitstr&amp;nbsp;=&amp;nbsp;unpack(&amp;quot;B&amp;quot;.$len,&amp;nbsp;pack(&amp;quot;H2&amp;quot;,&amp;nbsp;$hexcode));&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;10進数を単に2進文字列に変換するだけならこれでも構わないのですが、ビット演算子を使ってビットのオン・オフを判定して、2進文字列を作成していく方法もあります。以下のコードはその実装例です。&lt;/p&gt;&lt;p&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use&amp;nbsp;strict;&lt;br&gt;use&amp;nbsp;warnings;&lt;br&gt;&lt;br&gt;my&amp;nbsp;$ascii&amp;nbsp;=&amp;nbsp;&amp;quot;ABC&amp;quot;;&lt;br&gt;my&amp;nbsp;$asciicode&amp;nbsp;=&amp;nbsp;ord&amp;nbsp;$ascii;&amp;nbsp;&amp;nbsp;#&amp;nbsp;先頭文字のASCIIコード値を取得&lt;br&gt;my&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;_bitstrR($asciicode,&amp;nbsp;8);&lt;br&gt;print&amp;nbsp;&amp;quot;str&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;$str\n&amp;quot;;&amp;nbsp;#&amp;nbsp;for&amp;nbsp;debug&lt;br&gt;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;#&amp;nbsp;ビット演算で10進数を2進文字列に変換する関数&lt;br&gt;sub&amp;nbsp;_bitstrR&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($code,&amp;nbsp;$len)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bitstr&amp;nbsp;=&amp;nbsp;'';&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;my&amp;nbsp;$i&amp;nbsp;(1&amp;nbsp;..&amp;nbsp;$len)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$bitstr&amp;nbsp;.=&amp;nbsp;(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code)&amp;nbsp;?&amp;nbsp;'1'&amp;nbsp;:&amp;nbsp;'0';&amp;nbsp;#&amp;nbsp;0x80(2進数：10000000)でビット論理積をとる&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$bitstr;&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;ここで問題になるのはどちらの方法が処理速度が優れているかということですが、以下のコードのプロファイルを取ると・・・&lt;/p&gt;&lt;p&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use&amp;nbsp;strict;&lt;br&gt;use&amp;nbsp;warnings;&lt;br&gt;&lt;br&gt;my&amp;nbsp;$ascii&amp;nbsp;=&amp;nbsp;&amp;quot;ABC&amp;quot;;&lt;br&gt;my&amp;nbsp;$asciicode&amp;nbsp;=&amp;nbsp;ord&amp;nbsp;$ascii;&amp;nbsp;&amp;nbsp;#&amp;nbsp;先頭文字のASCIIコード値を取得&lt;br&gt;&lt;br&gt;my&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;'';&lt;br&gt;for&amp;nbsp;my&amp;nbsp;$j&amp;nbsp;(1&amp;nbsp;..&amp;nbsp;10000)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;_bitstr($asciicode,&amp;nbsp;8);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$str&amp;nbsp;=&amp;nbsp;_bitstrR($asciicode,&amp;nbsp;8);&lt;br&gt;}&lt;br&gt;print&amp;nbsp;&amp;quot;str&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;$str\n&amp;quot;;&amp;nbsp;#&amp;nbsp;for&amp;nbsp;debug&lt;br&gt;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;sub&amp;nbsp;_bitstr&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($code,&amp;nbsp;$len)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$hexcode&amp;nbsp;=&amp;nbsp;sprintf(&amp;quot;%X&amp;quot;,&amp;nbsp;$code);&amp;nbsp;#&amp;nbsp;16進に変換&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bitstr&amp;nbsp;=&amp;nbsp;unpack(&amp;quot;B&amp;quot;.$len,&amp;nbsp;pack(&amp;quot;H2&amp;quot;,&amp;nbsp;$hexcode));&lt;br&gt;}&lt;br&gt;&lt;br&gt;sub&amp;nbsp;_bitstrR&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;($code,&amp;nbsp;$len)&amp;nbsp;=&amp;nbsp;@_;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my&amp;nbsp;$bitstr&amp;nbsp;=&amp;nbsp;'';&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;my&amp;nbsp;$i&amp;nbsp;(1&amp;nbsp;..&amp;nbsp;$len)&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$bitstr&amp;nbsp;.=&amp;nbsp;(0x80&amp;nbsp;&amp;amp;&amp;nbsp;$code)&amp;nbsp;?&amp;nbsp;'1'&amp;nbsp;:&amp;nbsp;'0';&amp;nbsp;#&amp;nbsp;0x80(2進数：10000000)でビット論理積をとる&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$code&amp;nbsp;&amp;lt;&amp;lt;=&amp;nbsp;1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;$bitstr;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;C:\xampp\htdocs\sample&amp;gt;perl&amp;nbsp;-d:Dprof&amp;nbsp;bitstr3.pl&lt;br&gt;str&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;01000001&lt;br&gt;&lt;br&gt;C:\xampp\htdocs\sample&amp;gt;dprofpp&lt;br&gt;Total&amp;nbsp;Elapsed&amp;nbsp;Time&amp;nbsp;=&amp;nbsp;0.018988&amp;nbsp;Seconds&lt;br&gt;&amp;nbsp;&amp;nbsp;User+System&amp;nbsp;Time&amp;nbsp;=&amp;nbsp;0.016988&amp;nbsp;Seconds&lt;br&gt;Exclusive&amp;nbsp;Times&lt;br&gt;%Time&amp;nbsp;ExclSec&amp;nbsp;CumulS&amp;nbsp;#Calls&amp;nbsp;sec/call&amp;nbsp;Csec/c&amp;nbsp;&amp;nbsp;Name&lt;br&gt;&amp;nbsp;223.&amp;nbsp;&amp;nbsp;&amp;nbsp;0.038&amp;nbsp;&amp;nbsp;0.038&amp;nbsp;&amp;nbsp;10000&amp;nbsp;&amp;nbsp;&amp;nbsp;0.0000&amp;nbsp;0.0000&amp;nbsp;&amp;nbsp;main::_bitstr&lt;br&gt;&amp;nbsp;47.0&amp;nbsp;&amp;nbsp;&amp;nbsp;0.008&amp;nbsp;&amp;nbsp;0.008&amp;nbsp;&amp;nbsp;10000&amp;nbsp;&amp;nbsp;&amp;nbsp;0.0000&amp;nbsp;0.0000&amp;nbsp;&amp;nbsp;main::_bitstrR&lt;br&gt;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;-0.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;strict::import&lt;br&gt;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;-0.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;warnings::import&lt;br&gt;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;-0.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;strict::bits&lt;br&gt;&amp;nbsp;0.00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;-0.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&amp;nbsp;main::BEGIN&lt;br&gt;&lt;/p&gt;&lt;p&gt;やはり、ビット演算で2進文字列を作成するほうが早いようです。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4873110963/aaaaaaee-22/ref=nosim&quot;&gt;プログラミングPerl〈VOLUME1〉&lt;/a&gt;&lt;br /&gt;&lt;small&gt;オライリー・ジャパン  著者：ラリー ウォール,ジョン オーワント,トム クリスチャンセン  &lt;font color=&quot;#66ccff&quot;&gt;&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4873110963/aaaaaaee-22/ref=nosim&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51EK7E5K5FL.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4873110963/aaaaaaee-22/ref=nosim&quot; target=&quot;_blank&quot;&gt;amazon.co.jpのカスタマーレビューを見る&lt;/a&gt;&lt;br /&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2239#link&quot; target=&quot;_blank&quot;&gt;Link(4)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2239#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2239#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=2%E9%80%B2%E6%95%B0&quot; title=&quot;2進数&quot;&gt;2進数&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E5%A4%89%E6%8F%9B&quot; title=&quot;変換&quot;&gt;変換&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B3%E3%83%BC%E3%83%89&quot; title=&quot;コード&quot;&gt;コード&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2239</link>
    <pubDate>Sun, 09 Dec 2012 20:36:29 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]SimpleAPI Wikipedia APIのサンプルコード</title>
    <description>&lt;p&gt;ユーザーローカルが提供しているWikipediaの記述の一部を取得できるWeb APIを、Perlから呼び出すためのサンプルコード。コードの文字エンコードはUTF-8。標準出力へもUTF-8のまま出力。&lt;/p&gt;&lt;pre&gt;#!/usr/bin/perluse strict;use warnings;# for warning &quot;Wide character in print at ...&quot;binmode(STDOUT, &quot;:utf8&quot;);use URI::Escape;use LWP::Simple;use XML::Simple;my $item = '２ちゃんねる';$item = uri_escape($item);my $url = &quot;http://wikipedia.simpleapi.net/api?keyword=$item&quot;;my $content = get($url);my $xml = XML::Simple-&gt;new();my $response = $xml-&amp;gt;XMLin($content);print &quot;language: $response-&gt;{result}-&amp;gt;{language}\n&quot;;print &quot;datetime: $response-&gt;{result}-&amp;gt;{datetime}\n&quot;;print &quot;body    : $response-&gt;{result}-&amp;gt;{body}\n&quot;;print &quot;strict  : $response-&gt;{result}-&amp;gt;{strict}\n&quot;;print &quot;length  : $response-&gt;{result}-&amp;gt;{length}\n&quot;;print &quot;redirect: $response-&gt;{result}-&amp;gt;{redirect}\n&quot;;print &quot;url     : $response-&gt;{result}-&amp;gt;{url}\n&quot;;print &quot;id      : $response-&gt;{result}-&amp;gt;{id}\n&quot;;print &quot;title   : $response-&gt;{result}-&amp;gt;{title}\n&quot;;&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2032#link&quot; target=&quot;_blank&quot;&gt;Link(1)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2032#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=2032#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Web&quot; title=&quot;Web&quot;&gt;Web&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=API&quot; title=&quot;API&quot;&gt;API&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Wikipedia&quot; title=&quot;Wikipedia&quot;&gt;Wikipedia&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=2032</link>
    <pubDate>Fri, 24 Sep 2010 20:05:21 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム</title>
    <description>&lt;p&gt;PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。&lt;/p&gt;&lt;p&gt;あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。&lt;/p&gt;&lt;pre&gt;CREATE TABLE `users` (  `userid` varchar(100) COLLATE utf8_bin NOT NULL,  `password` varchar(250) COLLATE utf8_bin NOT NULL,  `status` int(11) NOT NULL,  `auth` int(11) NOT NULL,  `username` varchar(250) COLLATE utf8_bin NOT NULL,  `address` varchar(250) COLLATE utf8_bin NOT NULL,  `mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,  `hpurl` varchar(250) COLLATE utf8_bin NOT NULL,  `widgets` text COLLATE utf8_bin NOT NULL,  `createdate` datetime NOT NULL,  `lastupdate` datetime NOT NULL,  PRIMARY KEY (`userid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`)  values('admin','1234','1','0','webmaster','',  webmaster100@59log.com','http://59log.com/','',now(),now());insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`)  values('test1','5678','1','1','user 1','',  'test1@59log.com','http://59log.com/','',now(),now());insert into `users` (`userid`,`password`,`status`,`auth`, `username`,`address`,`mailaddr`,`hpurl`,`widgets`, `createdate`,`lastupdate`)  values('test2','abcd','1','1','user 2','',  'test2@59log.com','http://59log.com/','',now(),now());&lt;/pre&gt;&lt;p&gt;以下のPerlプログラムでは、テーブル「users」からステータスが1のレコードを全て取得、一旦配列に格納してから標準出力に出力しています。&lt;/p&gt;&lt;p&gt;検索条件の設定にはプレースホルダを使用し、DB処理でエラーが発生した場合は、例外処理に飛んでエラーの内容が出力されるように、RaiseErrorに1を設定しています。&lt;/p&gt;&lt;p&gt;--- mysql_select.pl ---&lt;/p&gt;&lt;pre&gt;#!/usr/bin/perluse strict;use warnings;use DBI;my $data_source = &quot;DBI:mysql:testdb&quot;; # 接続先はtestdbmy $username = &quot;test&quot;; # データベースへのアクセス権限を持つユーザーを指定my $password = &quot;abcd&quot;; # そのパスワードmy $status = 1;my @recs = ();eval {    my $dbh = DBI-&gt;connect($data_source, $username, $password,                          {RaiseError =&gt; 1, PrintError =&gt; 0});    my $sql  = &quot;select * from users where status = ?&quot;;    my $sth = $dbh-&gt;prepare($sql);    $sth-&gt;execute($status);    while (my @rec = $sth-&gt;fetchrow_array) {        push @recs, [@rec];    }    $sth-&gt;finish;    $dbh-&gt;disconnect;};if ($@) {    print &quot;Error : $@\n&quot;;}foreach my $rec (@recs) {    print join(&quot;,&quot;, @{$rec}), &quot;\n&quot;;}&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1981#link&quot; target=&quot;_blank&quot;&gt;Link(6)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1981#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1981#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=DBI&quot; title=&quot;DBI&quot;&gt;DBI&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=MySQL&quot; title=&quot;MySQL&quot;&gt;MySQL&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&quot; title=&quot;サンプル&quot;&gt;サンプル&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;プログラム&quot;&gt;プログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=1981</link>
    <pubDate>Mon, 26 Jul 2010 00:12:18 +0900</pubDate>
  </item>
  <item>
    <title>[Perl][HTML::Template]&lt;TMPL_LOOP&gt;タグのサンプルプログラム</title>
    <description>&lt;p&gt;&amp;lt;TMPL_LOOP&amp;gt;タグはセクションを区切り、名前をつけることができます。この名前つきループの内側に&amp;lt;TMPL_VAR&amp;gt;タグを置き、プログラムでパラメータに代入するハッシュ・リファレンスの param() にリスト(配列リファレンス)を渡すと、リスト分の出力が繰り返されます。&lt;/p&gt;&lt;p&gt;以下は、&amp;lt;TMPL_LOOP&amp;gt;タグの使い方を示すサンプルプログラムです。サンプルプログラムでは、コンマで区切られたデータファイルを読み込んでリストを作成し、それをパラメータに渡してテーブルを表示しています。また、&amp;lt;TMPL_IF&amp;gt;タグ、&amp;lt;TMPL_ELSE&amp;gt;タグを使用してデータがない場合は、テーブルが出力されないようにしています。&lt;/p&gt;&lt;br /&gt;--- データファイル（userdata.txt）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;kagahiro,kitaakita,kagahiro3@59log.com,011678901admin,tokyo,webmaster10@59log.com,011778901buzei,kawasaki,support2@59bbs.org,041758901&lt;/pre&gt;&lt;br /&gt;--- テンプレートファイル（tmplloop.tmpl）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;HTML::Templateのサンプルプログラム LOOP&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;HTML::Templateのサンプルプログラム LOOP&amp;lt;/h1&amp;gt;&amp;lt;TMPL_IF NAME=DATA_NUM&amp;gt;    &amp;lt;table&amp;gt;    &amp;lt;tr&amp;gt;    &amp;lt;td&amp;gt;User Name&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;Address&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;Email&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;Tel&amp;lt;/td&amp;gt;    &amp;lt;/tr&amp;gt;    &amp;lt;TMPL_LOOP NAME=USER_INFO&amp;gt;    &amp;lt;tr&amp;gt;    &amp;lt;td&amp;gt;&amp;lt;TMPL_VAR NAME=USERNAME&amp;gt;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;lt;TMPL_VAR NAME=ADDRESS&amp;gt;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;lt;TMPL_VAR NAME=EMAIL&amp;gt;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;lt;TMPL_VAR NAME=TEL&amp;gt;&amp;lt;/td&amp;gt;    &amp;lt;/tr&amp;gt;    &amp;lt;/TMPL_LOOP&amp;gt;    &amp;lt;/table&amp;gt;&amp;lt;TMPL_ELSE&amp;gt;    No data&amp;lt;/TMPL_IF&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;br /&gt;--- CGI（tmplloop.cgi）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/perluse strict;use warnings;use HTML::Template;my $template = HTML::Template-&amp;gt;new(filename =&amp;gt; 'tmplloop.tmpl');my @loop_data = ();open my $infh, '&amp;lt;', &quot;userdata.txt&quot;;while (my $rec = &amp;lt;$infh&amp;gt;) {    chomp $rec;    if ($rec ne '') {        my %row_data;        my ($username, $address, $email, $tel) = split(/,/, $rec);        $row_data{USERNAME} = $username;        $row_data{ADDRESS} = $address;        $row_data{EMAIL} = $email;        $row_data{TEL} = $tel;        push @loop_data, \%row_data;    }}close $infh;$template-&gt;param(USER_INFO =&amp;gt; \@loop_data);$template-&gt;param(DATA_NUM =&amp;gt; scalar(@loop_data));print &quot;Content-Type: text/html; charset=utf-8\n\n&quot;;print $template-&amp;gt;output;&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1975#link&quot; target=&quot;_blank&quot;&gt;Link(4)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1975#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1975#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=HTML&quot; title=&quot;HTML&quot;&gt;HTML&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Template&quot; title=&quot;Template&quot;&gt;Template&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;サンプルプログラム&quot;&gt;サンプルプログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=1975</link>
    <pubDate>Thu, 22 Jul 2010 17:36:36 +0900</pubDate>
  </item>
  <item>
    <title>[Perl][HTML::Template]&lt;TMPL_VAR&gt;タグのサンプルプログラム</title>
    <description>&lt;p&gt;HTML::Templateの&amp;lt;TMPL_VAR&amp;gt;タグは、プログラムでパラメータに値を設定すると、タグの部分がパラメータで設定された文字列で置き換えられるという簡単なものです。&lt;/p&gt;&lt;p&gt;以下は、&amp;lt;TMPL_VAR&amp;gt;タグの使い方を示す単純なサンプルプログラムです。&lt;/p&gt;&lt;br /&gt;--- テンプレートファイル（tmplvar.tmpl）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;HTML::Templateのサンプルプログラム VAR&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;HTML::Templateのサンプルプログラム VAR&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;My Name is &amp;lt;TMPL_VAR NAME=NAME&amp;gt; &amp;lt;br /&amp;gt;My IP Address is &amp;lt;TMPL_VAR NAME=IPADDR&gt; &amp;lt;br /&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;br /&gt;--- CGI（tmplvar.cgi）&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/perluse strict;use warnings;use HTML::Template;my $template = HTML::Template-&amp;gt;new(filename =&amp;gt; 'tmplvar.tmpl');$template-&gt;param(NAME =&amp;gt; 'Yamato, Taro');$template-&gt;param(IPADDR =&amp;gt; $ENV{'REMOTE_ADDR'});print &quot;Content-Type: text/html; charset=utf-8\n\n&quot;;print $template-&amp;gt;output;&lt;/pre&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1974#link&quot; target=&quot;_blank&quot;&gt;Link(3)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1974#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1974#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=HTML&quot; title=&quot;HTML&quot;&gt;HTML&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Template&quot; title=&quot;Template&quot;&gt;Template&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;サンプルプログラム&quot;&gt;サンプルプログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=1974</link>
    <pubDate>Thu, 22 Jul 2010 13:20:16 +0900</pubDate>
  </item>
  <item>
    <title>[Perl]2次元配列のサンプルプログラム</title>
    <description>&lt;p&gt;C言語やC++なら2次元配列といっても配列の階層を増やすだけなので、わりと簡単に理解できるのですが、Perlはそこでリファレンスという、いまいちわかりにくいものが出てくるのでちょっと面倒です。&lt;/p&gt;&lt;p&gt;とはいっても、2次元配列程度でならそんなに複雑なコードになるというわけでもありません。&lt;/p&gt;&lt;p&gt;以下は、numdata.txtというコンマで区切られたテキストファイルのデータを、2次元配列に格納してからレコードごとに標準出力に出力するPerlのサンプルプログラムです。&lt;/p&gt;&lt;pre&gt;--- numdata.txt ---1,2,3,411,12,13,1421,22,23,2431,32,33,3441,42,43,44--- sample.pl ---#!/usr/bin/perluse strict;use warnings;#use Data::Dumper;my @list;open my $infh, '&amp;lt;', &quot;numdata.txt&quot;;while (my $rec = &amp;lt;$infh&amp;gt;) {    chomp $rec;    if ($rec ne '') {        push @list, [split(/,/, $rec)];    }}close $infh;#print Dumper(@list);foreach my $item (@list) {#    print Dumper($item);    my ($a, $b, $c, $d) = @{$item};    print &quot;$a, $b, $c, $d\n&quot;;}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.amazon.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEPerl-%E7%AC%AC5%E7%89%88-Randal-L-Schwartz/dp/4873114276%3FSubscriptionId%3D0FKHS4T7G9C54Z60PCG2%26tag%3Daaaaaaee-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114276&quot;&gt;初めてのPerl 第5版&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;small&gt;オライリージャパン  著者：Randal L. Schwartz,Tom Phoenix,brian d foy  価格：3,780円  評価：&lt;font color=&quot;#66ccff&quot;&gt;★★★★★&lt;/font&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.jp/%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEPerl-%E7%AC%AC5%E7%89%88-Randal-L-Schwartz/dp/4873114276%3FSubscriptionId%3D0FKHS4T7G9C54Z60PCG2%26tag%3Daaaaaaee-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114276&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51Hgdb6WcQL._SL160_.jpg&quot; border=&quot;0&quot; &gt;&lt;/a&gt;  &lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;powered by &lt;a href=&quot;http://59bbs.org/amalink/&quot;&gt;amalink&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1962#link&quot; target=&quot;_blank&quot;&gt;Link(3)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1962#trackback&quot; target=&quot;_blank&quot;&gt;Trackback(0)&lt;/a&gt; | &lt;a href=&quot;https://59log.com/?func=detail&amp;amp;id=1962#comment&quot; target=&quot;_blank&quot;&gt;Comment(0)&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;h3&gt;キーワード&lt;/h3&gt;&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=Perl&quot; title=&quot;Perl&quot;&gt;Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; title=&quot;サンプルプログラム&quot;&gt;サンプルプログラム&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=2%E6%AC%A1%E5%85%83%E9%85%8D%E5%88%97&quot; title=&quot;2次元配列&quot;&gt;2次元配列&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;em&gt;&lt;a href=&quot;https://59log.com/?q=%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&quot; title=&quot;リファレンス&quot;&gt;リファレンス&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://59log.com/&quot;&gt;語句ログ - ニュース、プログラミング、システムトレードの用語解説 - 日本の注目ニュース、コンピュータープログラミング（C/C++,Perl,PHP,SQL）、システムトレード（FX,CFD,株価指数,先物）に関する語句（Word）を日本語や英語で解説&lt;/a&gt;&lt;/p&gt;</description>
    <link>https://59log.com/?func=detail&amp;id=1962</link>
    <pubDate>Sat, 17 Jul 2010 00:10:40 +0900</pubDate>
  </item>

 </channel>
</rss>
