Ruby¶¼´ÓPerlÄǼ̳ÐÁËʲô£¿
×î½ü¿´ÁË¿´Perl£¬Ö÷ÒªÊÇÏë¿´¿´Ruby¶¼´ÓPerlÄÇÄÃÀ´ÁËЩʲô¡£Í¬Ê±£¬Ò²ÊÇÎÒѧϰPerlµÄһƪ±Ê¼Ç¡£
Ϊʲô´ó¼Ò¶¼ÊÇPerlµÄ´úÂë³óª£¬ÊÇʲôµ¼ÖÂÁËPerl³ÌÐò»ÞɬÄѶ®£¬RubyÖÐÓÖÊÇÈçºÎÈ¡ÉáÕâÐ©ÔªËØµÄÄØ£¿ÎÒÈÏΪPerlÉçÇø×·Çó¸üÉÙ´úÂëµÄ·çÆøÖú³¤ÁË´óÁ¿Ê¹ÓÃÔ¤Éè±äÁ¿µÄ·çÆø£¬´Ó¶øµ¼ÖÂÁËPerl´úÂëµÄ»Þɬ¡£
ÏÂÃæµÄÿ¸öPerlµÄÀý×Ó×ܰéÓÐRubyµÄ¶ÔÕÕ¡£
PerlµÄÀíÄî-ÌõÌõ´óµÀͨÂÞÂí¡¸There is more than one way to do it¡¹¡£
¶¼ËµPerl¼òµ¥¡¢“ÍòÄÜ”¡¢¿ìËÙ¡¢³óª£¬RubyÕ¦¾ÍÕâôÂýÄØ£¿
PerlµÄǰÉíÓïÑÔ£ºC, awk, sed, sh, ÒÔϵͳ¹ÜÀíΪĿ±ê, Ç¿µ÷ʹÓÃÐÔ¶ø²»ÊÇÃÀ¹Û¡£
¶Ï¾ä
PerlµÄÓï¾äÊÇÒÔ·ÖºÅ";"×÷Ϊ·Ö¸ô£¬¶øRubyÊÇÒÔ»»ÐС£ËùÒÔRubyµÄ´úÂëÖÐÏʼû·ÖºÅ¡£
ÊäÈëÊä³ö
RubyµÄÊä³ö(print)ËÆºõ¾ÍÊÇ´ÓPerlÄÇÖ±½ÓÄùýÀ´µÄ£º
#!perl
print "hi, Pope."
#!ruby
print "hi, Pope."
µ«×Ö·û´®µÄÄÚ²å¾ÍÓÐËù²»Í¬ÁË¡£
PerlÖпÉÒÔÕâÑùʵÏÖ×Ö·û´®µÄ±äÁ¿Ìæ»»£º
#!perl
my $name = "Pope";
print "hi, $name\n";
¶øRubyÖÐÊǽ«±äÁ¿ÓÃ#{}°ü¹üÆðÀ´£º
#!ruby
name = "Pope"
print "hi, #{name}."
PerlµÄÊäÈëʹÓÃ<STDIN>¡£²»¹ý£¬´ó¼ÒÒ»°ãÓÃ×êʯÔËËã·û(diamond operator)"<>":
#!perl
print "please enter your name:";
my $name = <>;
print "hello, $name\n";
ÔÚRubyÖУ¬Ò»°ãÓÃSTDIN.gets»òÕßgets£º
#!ruby
print "please enter your name:";
name = gets;
print "hello, #{name}\n";
×Ö·û´®
PerlµÄ×Ö·û´®¿ÉÒÔÓÃË«ÒýºÅÀ¨ÆðÀ´,Ò²¿ÉÒÔÓÃqq//,qq||,qq{},qqºó¸úÈÎÒâ³É¶ÔµÄ·ûºÅ.
#!perl
my $s1 = "Pope";
my $s2 = qq/Pope/;
my $s3 = qq|Pope|;
my $s4 = qq{Pope};
RubyҲѧÀ´ÁË,ÓÃ%q»ò%Q¼ÓÈÎÒâ³É¶ÔµÄ·ûºÅ.²»¹ý,Rubyistϲ»¶ÓÃ%q[].(¸½´øËµÃ÷Ò»ÏÂ%qºÍ%QµÄÇø±ð,ÓÃ%qÀ´À¨¾ÍºÃÏóÊÇÓõ¥ÒýºÅ,¶ø%QÈçͬ˫ÒýºÅ.µ¥Ë«ÒýºÅÊDz»Í¬µÄà¸!)
#!ruby
s1 = "Pope";
s2 = %Q/Pope/;
s3 = %Q|Pope|;
s4 = %Q{Pope};
Êý×é
ÔÚPerlÖУ¬Êý×é±äÁ¿ÊÇÒÔ@·û¿ªÍ·,ÓÃСÀ¨ºÅ°ÑÖµÀ¨ÆðÀ´.
#!perl
my @array = (1, 2, 3);
ÓÃqwÒ²ÐÐ:
#!perl
my @array = qw/1 2 3/;
RubyÖÐÊÇÓÃÖÐÀ¨ºÅ£¬Ò²¿ÉÓÃ%w¡£
#!ruby
array = [1, 2, 3]
PerlºÍRubyµÄÊý×é¶¼¿ÉÒÔ×Ô¶¯À©³ä¡£Êý×éÖÐûÓÐÖ¸¶¨ÖµµÄÔªËØ»á±»PerlÉèΪundef£¬¶øRubyÖÐÊÇnil¡£ÔÚPerlÖмÆËãÊý×鳤¶ÈÊÇÓÃ$#array+1£¬ÆäÖÐ$#arrayÊÇÊý×éarrayµ
Ïà¹ØÎĵµ£º
%{String} ÓÃÓÚ´´½¨Ò»¸öʹÓÃË«ÒýºÅÀ¨ÆðÀ´µÄ×Ö·û´®
%Q{String} ÓÃÓÚ´´½¨Ò»¸öʹÓÃË«ÒýºÅÀ¨ÆðÀ´µÄ×Ö·û´®
%Q!Some String of “Characters”! <==> ” Some String of \”Characters\” “
%q{String} ÓÃÓÚ´´½¨Ò»¸öʹÓõ¥ÒýºÅÀ¨ÆðÀ´µÄ×Ö·û´®
%q!Som ......
RuportÖÐpdf_writer¶ÔÖÐÎĵÄÖ§³Ö²¢²»ºÃ£¬Êä³öµÄÖÐÎÄÏÔʾµÄÊÇÂÒÂë¡£ÉÏÍø²éÁ˺ܶà×ÊÁÏ£¬Ò²Ã»ÓÐÕÒµ½ºÃµÄ½â¾ö·½°¸£¬ÎÞÄÎÖ»ºÃ²é¿´Ô´´úÂ룬µ½µ×ΪʲôRuport×Ô´øµÄPDF¹¤¾ß²»Ö§³ÖÖÐÎÄÊä³ö¡£
Ruport::Formatter::PDF::WriterÖÐÕÒµ½ÒÔÏ´úÂë
metrics = load_font_metrics(font)
metrics = PDF::Writer: ......
RubyÓïÑÔѧϰϵÁÐ--»ù±¾µÄrubyÓï·¨
1. »ù±¾µÄrubyÓï·¨
1.1 ±äÁ¿¡¢³£Á¿ºÍÀàÐÍ
1) ¶¨Òå±äÁ¿
±äÁ¿ÀàÐÍ
ÃèÊö
ʾÀý
¾Ö²¿±äÁ¿£¨»òα±äÁ¿£©
ÒÔСд×Öĸ»òÏ»®Ïß¿¨Í·
var _var
È«¾Ö±äÁ¿
ÒÔ$¿ªÍ·
$ ......
Ruby Òì³£´¦Àí
ÎÄÕ·ÖÀà:Ruby±à³Ì ¹Ø¼ü×Ö: ruby Òì³£ Òì³£´¦Àí
Òì³£´¦ÀíÊÇ¿ª·¢¹ý³ÌÖо³£ÒªÃæ¶ÔµÄÎÊÌ⣬»ù±¾ËùÓи߼¶ÓïÑÔ¶¼ÓÐ×Ô¼ºµÄÒì³£´¦Àíϵͳ£¬rubyÒ²²»ÀýÍ⣬¶øÇÒʹÓÃÆðÀ´Ò²·Ç³£¼òµ¥¡£
rubyÖÐÒì³£µÄÅ׳öÊÇʹÓõÄraise·½·¨£¬¼Çס ......
±¾ÀýÔÚ Ruby Ruportʵ¼ù—±¨±í²ÎÊýʵÏÖ µÄ»ù´¡ÉϽøÐиÄÔ죬ʵÏÖ±¨±íÖ´Ðж¨Òåʱ±¨±í²ÎÊýµÄÔö¡¢É¾¡¢¸Ä²Ù×÷
Ò»¡¢ÐÞ¸Äviews/report_executions/edit.html.erb
²»½öÏÔʾÔÚн¨±¨±íÖ´ÐÐʱ±£´æµÄ±¨±í²ÎÊý£¬»¹¿É¶¯Ì¬ÏÔʾʣÓàµÄ²ÎÊý£¨ÕâÀï¿ØÖÆ²ÎÊý×î¶à¿É¶¨Òå5¸ö£©£¬ÕâÑù¿É±ÜÃâÒÅÍü¶¨Ò屨±í²ÎÊý»òÐèÒªÔö¼Ó±¨±í²ÎÊýµ ......