#!/usr/bin/env perl
package BankAccount;
use Moose;
use Data::Dumper;
has 'balance' => (
is => 'rw',
isa => 'Str',
default => 0
);
sub deposit {
my ($self, $amount) = @_;
$self->balance( $self->balance + $amount);
}
sub showBalance {
my $self = @_;
print "The balance is : \n";
}
my $savingAccount = BankAccount->new( balance => 250 );
print Dumper($savingAccount);
$savingAccount->deposit(100);
print Dumper($savingAccount);
$savingAccount->showBalance();
2013年3月12日
[Perl] Moose 範例 - 銀行篇
2013年1月23日
[Perl] Linux 上使用 Perl 查詢 Microsoft SQL Server
Perl 連接 MySQL 這種就不用多說了,Google 一下就很多教學 今天來談的是 Linux 裡面如何查詢微軟的 MS SQL Server
簡介如下
建置環境 : CentOS v6.2
程式語言 : Perl v5.10.1
一開始需先安裝 FreeTDS 程式,但是 yum 預設並沒有這個套件,所以要先前置作業下載 CentOS epel RPM , 記得看你的 CentOS 版本是 5 還是 6 找到對應的目錄去下載
安裝步驟
1. sudo su -
2. rpm -Uvh epel-release-6-8.noarch.rpm
3. vim /etc/yum.repos.d/epel.repo,把 [epel] 裡面的註解取消
4. yum update
5. yum install freetds.x86_64
6. yum install freetds-devel.x86_64
7. vim /etc/freetds.conf,新增如下
安裝完成後可以先執行 tsql 測試
tsql -S sqlserver.hostname.com -U sqlusername -D your_db_name
進去後再下
select * from sys.Tables;
GO
quit
也可以改成 "一行執行"
printf "SELECT * FROM httpstatus\ngo\n" | tsql -S sqlserver.hostname.com -U sqlusername -P sqlpassword -D your_db_name
前置作業完成後,再來要安裝 Perl 模組 DBD::Sybase,你沒看錯真的是 Sybase 模組(緣由請參考這裡)
安裝步驟
1. export SYBASE=/usr (這行要有不然安裝時會出現找不到 sybase library 錯誤)
2. cpanm DBD::Sybase
都完成後終於要開始寫程式啦, 程式碼如下
資考資料 : http://dolio.lh.net/~apw/doc/HOWTO/HOWTO-Connect_Perl_to_SQL_Server.pdf
簡介如下
建置環境 : CentOS v6.2
程式語言 : Perl v5.10.1
一開始需先安裝 FreeTDS 程式,但是 yum 預設並沒有這個套件,所以要先前置作業下載 CentOS epel RPM , 記得看你的 CentOS 版本是 5 還是 6 找到對應的目錄去下載
安裝步驟
1. sudo su -
2. rpm -Uvh epel-release-6-8.noarch.rpm
3. vim /etc/yum.repos.d/epel.repo,把 [epel] 裡面的註解取消
4. yum update
5. yum install freetds.x86_64
6. yum install freetds-devel.x86_64
7. vim /etc/freetds.conf,新增如下
[SQLSERVER]
host = your_sqlserver_hostname
port = 1433
tds version = 7.0
安裝完成後可以先執行 tsql 測試
tsql -S sqlserver.hostname.com -U sqlusername -D your_db_name
進去後再下
select * from sys.Tables;
GO
quit
也可以改成 "一行執行"
printf "SELECT * FROM httpstatus\ngo\n" | tsql -S sqlserver.hostname.com -U sqlusername -P sqlpassword -D your_db_name
前置作業完成後,再來要安裝 Perl 模組 DBD::Sybase,你沒看錯真的是 Sybase 模組(緣由請參考這裡)
安裝步驟
1. export SYBASE=/usr (這行要有不然安裝時會出現找不到 sybase library 錯誤)
2. cpanm DBD::Sybase
都完成後終於要開始寫程式啦, 程式碼如下
#!/usr/bin/perl
#use lib ('./modules');
use DBI;
use DBD::Sybase;
my $database = "your_db_name";
my $username = 'sqlusername';
my $password = 'sqlpassword';
#SQLSERVER 字串對應至 /etc/freetds.conf 裡面的 [SQLSERVER] tag
$dsn = "DBI:Sybase:server=SQLSERVER;database=$database";
my $dbh = DBI->connect($dsn, $username, $password) or die "Database connection not made : $DBI::errstr";
my $sql = "SELECT TOP 5 * FROM httpstatus order by testtime desc";
my $sth = $dbh->prepare( $sql );
$sth->execute() or die "unable to execute query $sql, error $DBI::errstr\n";
$rows = $sth->rows;
while ( @first = $sth->fetchrow_array ) {
foreach $field (@first) {
print "$field ";
}
print "\n";
}
$sth->finish();
undef $sth;
$dbh->disconnect();
print "Query successfully\n";
資考資料 : http://dolio.lh.net/~apw/doc/HOWTO/HOWTO-Connect_Perl_to_SQL_Server.pdf
訂閱:
文章 (Atom)