2012年11月28日水曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の5章(ハッシュ)、6.6(練習問題)1を解いてみる。

その他参考書籍

1.

コード(TextWrangler)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my %names = ( 'fred' => 'flintstone',
              'barney' => 'rubble',
              'wilma' => 'flintstone',
            );

while(1){
  print "firat name: ";
  chomp(my $name =<STDIN>);
  last if $name =~ /\A\s*\Z/;
  if($names{$name}){
    print "last name: $names{$name}\n";
  } else {
    print "?\n";
  }
}
    

入出力結果(Terminal)

$ ./sample.pl
firat name: fred
last name: flintstone
firat name: barney
last name: rubble
firat name: wilma
last name: flintstone
firat name: kamimura
?
firat name: 
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var names = {'fred':'flintstone', 'barney':'rubble', 'wilma':'flintstone'};
var name = $('#t0').val();
var result = 'last name: ';
result += names[name] ? names[name] : '?';
$('#pre0').text(result);




pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-

import re
pattern = re.compile(r"^\s*$")

names = {'fred':'flintstone', 'barney':'rubble', 'wilma':'flintstone'}
while True:
    name = input("first name: ")
    if re.match(pattern, name): break
    if name in names:
        print('last name: {0}'.format(names[name]))
    else:
        print('?')

入出力結果(Terminal)

$ ./sample.py
first name: fred
last name: flintstone
first name: barney
last name: rubble
first name: wilma
last name: flintstone
first name: kamimura
?
first name: 
$

0 コメント:

コメントを投稿