my $sth = $dbh->prepare("select id,name from key "); $sth->execute(); #while (my $hash_ref = $sth->fetchrow_hashref) { #$key_id = $hash_ref->{'id'}; #$key_name = $hash_ref->{'name'}; #} our $array_key = $sth->fetchall_arrayref; 现有值$id=30 需要从$array_key取出id对应的name,请教能否给个例子? 新学生,问的问题好像不是问题^_^ 谢谢
by 枫影谁用了 - Perl - 2009-01-06 11:28:43 阅读(2348) 回复(5)
下载了 Spreadsheet::ParseExcel::Simple和相关模块, 想从一个excel文件中读取数据, 模块说明中给出的code是 my $xls = Spreadsheet::ParseExcel::Simple->read('spreadsheet.xls'); foreach my $sheet ($xls->sheets) { while ($sheet->has_data) { my @data = $sheet->next_row; } } 可以运行,把所有的数据都倒了出来。 我想读取特定的数据,遇到问题 my $xls = Spreadsheet::ParseExcel::Simp...
perl中的hash和我印象中传统的hash表不一样,数据结构中hash表是通过一个函数把关键字映射到一个连续地址空间上,也就是实际上用数组实现的 perl可以允许任意形式的变量直接作为索引,然而如果事先不能知道关键字的特点,也就不能合适的选出hash函数,那有怎么能够保证O(1)的查找效率呢,其实我就是想问perl中hash怎么实现的 刚开始学perl 可能说的不大清楚 大家见谅
我的脚本如下: #!/usr/bin/perl -w use DBI; my $sql="mysql"; #connent my $dbh = DBI->connect("DBI:mysql:database=cacti;host=localhost","user","passwd",{'RaiseError' => 1}); # execute SELECT query my $sth = $dbh->prepare("select data_id from thold_data where id='1'"); $sth->execute(); # iterate through resultset # print values while(my $ref = $sth->fetchrow_hashref()) { print "$ref"; ...
@m = (7, 8, 9); %m = ( a => "123", b => "456", c => "789" ); print($m{"a"} + $m["b"]); 得出来的结果是 130. 但不知道怎么得来的?? 这里不是打印 $m{"a"}的值么?就是124才对啊.
碰到以下问题 my $date = getTime(); print $date; sub getTime #日期函数 { my $time = shift || time(); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $year += 1900; $mon ++; $min = '0'.$min if length($min) < 2; $sec = '0'.$sec if length($sec) < 2; $mon = '0'.$mon if length($mon) < 2; $mday = '0'.$mday if leng...
编写了一段程序,发现hash在第二个循环并不能自动从头开始,而是继续执行 结果显示在i=1的循环,程序没有从hash中取出来c=>"testc"...... 程序: my $key; my $value; my %myhash = ("a"=>"testa", "b"=>"testb", "c"=>"testc"); for (my $i = 0; $i<=2; $i++) { print '$i is '.$i."\n"; while (($key, $value) = (each %myhash)) { print '$key is '.$key."\n"; print '$value is '.$value."\n"; if ("testc" =...
hash文件内容: $datamysql{"master"}={ "host5.zhang.edu",3309 } $datamysql{"slave"}={ "host5.zhang.edu",3309, "host7.zhang.edu",3309 } 把上面的内容用open打开付给一个新的%hash-new,有什么好办法吗?
[code]#!/usr/bin/bperl -w
use strict;
open (AH,"$ARGV[0]") || die "not found $!";
my $line;
my $lac_name;
my $lac_where;
my %lac;
my @lac_name;
my %lac_name;
while ($line=