2013年3月13日 星期三

Perl初學筆記(4)-關於Reference(參照)-1

是說,停頓了幾天沒有寫什麼東西了,一來是忙,二來是我最近也是很不務正業的在看一些Perl的東西,但是...這樣也好啦,因為很可惜的,近期之內 JavaScript應該是不會有什麼進步,偶爾看看別的也好,而且其實我覺得我趁現在身邊同事可以讓我問些問題,也是很不錯。

這兩天有看一些參照的東西,我的朋友有出一個作業讓我寫,挺有趣的,在我以前所學,沒碰過reference這種存在記憶體空間的有趣事情xd,參照的筆記會有兩篇,這篇就先放作業的題目吧! 下一篇可能會寫的比較清楚,而且我發現我的註解比程式碼多好多,呵~有一種又回到一兩年前我剛學PHP那種初學者的感覺。

練習怎麼初始化Hash, Array, Hash的reference, Array的reference:
#!/usr/bin/perl -w
use strict;

my %hash = ();
#這是hash的初始化
#hash的初始化不能用{},否則會報以下的錯誤
#will popup alert msg Reference found where even-sized list expected at practice_hash_array_reference.pl line 5.

my $hash_ref = {};
#這是hash reference的初始化

my @array = () ;
#這是array的初始化

my $array_ref = [];
#這是array reference的初始化

%hash = qw/car audi price 20000000 birth_year 1990/;
#指定一些值到%hash

$hash_ref  = \%hash;
#取得%hash的reference

@array     = (1990...1999);
#指定一些值到@array

$array_ref = \@array;
#取得@array的reference


print "this is \$hash_ref:  $hash_ref \n";
#印出hash reference的記憶體位置
#印出的結果: this is $hash_ref:  HASH(0x162f8bc)

print "this is \$array_ref : $array_ref \n";
#印出array reference的記憶體位置
#印出的結果: this is $array_ref : ARRAY(0x1f5b384)

print "My hash's car is ".${$hash_ref}{car}."\n";
#取得reference的car的值
#印出的結果是: My hash's car is audi

for(keys %{$hash_ref}){
  print "this value is ". ${$hash_ref}{$_}.".\n";
}
#分別印出Hash裡每個value
#印出的結果是:
#this value is audi.
#this value is 1990.
#this value is 20000000.

print @{$array_ref}[2]."\n";
#印出array_ref第二個元素  ==>取得1992

然後...其實Perl的基本語法疑似乎...沒有這麼難理解,他只是符號很多,很簡短,但是要去trace 別人的code,那才是真的亂碼阿xd

沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...