- ściągnać i zainstalować DBI - ściągnąć i zainstalować odpowiednie DBD - poczytać odpowiednie manuale (np. perldoc DBD::mysql)
Ogólnie schemat jest następujący:
use DBI;
$dbname="nazwabazy"; $dbdbd="mysql"; #lub Sybase lub Pg lub inna nazwa DBD $username="nazwauzytkownika"; $password="haslo"; $table="tabelka";
my $dbh = DBI->connect( "dbi:$dbdbd:$dbname", $username, $password);
my $sth = $dbh->prepare( "select * from $table" );
$sth->execute() || die $sth->errstr;
while ( my $row = $sth->fetchrow_arrayref() ) { print "@{$row}\n"; }
$dbh->disconnect();
use XBase;
my $table = new XBase("dbase.dbf") or die XBase->errstr();
for (0 .. $table->last_record()) {
my ($deleted,$id,$msg) = $table->get_record($_,"ID","MSG");
print "$id:\t$msg\n" unless $deleted;
}
use GDBM_File ;
tie %hash, 'GDBM_File', $filename, &GDBM_WRCREAT, 0640;
$hash{bzt} = 'tralala';
dodatkowe informacje:
perldoc NDBM_File, DB_File, AnyDBM_File
Do wielopoziomowych struktur dbm służy moduł MLDBM (multi-level DBM) lub Storable.
Proste dzielenie pól po przecinkach z cudzysłowem daje wyrażenie
@pola = m/([^,]*|".*?"),?/g;
Z platformy Windows zaleca się moduł Win32::OLE.
$excel=Win32::OLE->new('Excel.Application','Quit');
$plik=$excel->Workbooks->Open($nazwapliku);
$i=1;
while($plik->Worksheets($i)){
$ark=$plik->Worksheets($i);
$zawartosc=$ark->UsedRange()->{Value};
$i++;
}
$excel->Quit;
Ostatecznie można wykorzystać moduły Spreadsheet::WriteExcel i Spreadsheet::ParseExcel, lub program zewnętrzny xlhtml, który pozwala skonwertować plik xls do ascii (z różnymi opcjami).
use DBI;
my $baza = 'd:\test\test.mdb';
my $driver = 'Microsoft Access Driver (*.mdb)';
my $dsn = "driver=$driver;dbq=$baza";
my $dbh = DBI->connect("dbi:ODBC:$dsn",",") or die $DBI::errstr;
Jest też Win32::ODBC, ale jest wolny i niedoskonały.
Pierwszy jest szybszy i mniej pamięciożerny. MS SQL ma w sobie silnik Sybase'a i modul ten w 98% przypadków świetnie się do MS SQL'a nadaje.
Pierwszy jest raczej dla środowiska Unix (i bezpłatny) drugi raczej dla Windows. (Uwaga! dla NT 4.0 Workstation z NTFS, i ActivePerl'a 5.6, potrzeba SP5, lub wiecej, bo inaczej mogą pojawić się kłopoty z prawami dostępu skryptu do microsoftowych sterowników jet)
use XML::Parser;
$p = new XML::Parser(Style => 'Debug');
$p->parsefile('plik.xml');
Poza tym moduł XSLT, a także do czytania XML - XML::XPath, a do manipulacji - XML::DOM. Prosty moduł to XML::Simple:
my $xs = new XML::Simple(ProtocolEncoding => 'ISO-8859-2');
Inny przykład:
use XML::LibXSLT; use XML::LibXML; my $parser = XML::LibXML->new(); my $xslt = XML::LibXSLT->new(); my $sklep = $parser->parse_file( 'sklep.xml' ); my $index_doc = $parser->parse_file( 'index.xsl' ); my $index_styl = $xslt->parse_stylesheet( $index_doc ); $results = $index_styl->transform( $sklep ); $xx = $index_styl->output_string( $results );
Więcej implemetacji można znaleźć pod:
http://www.xml.com/pub/rg/Perl_Implementations http://perl-xml.sourceforge.net/faq/#cpan_modules