የውሂብ አይነቶች በፐር. የግፊት እና የፖፕ ተግባራት። የህትመት ተግባርን በመጠቀም

ፐርል እንዲጽፉ ይፈቅድልዎታል ኃይለኛ ፕሮግራሞችገና ከመጀመሪያው፣ እርስዎ አዲስ ፕሮግራመር ወይም ባለሙያ ይሁኑ። ፐርል ያቀርባል መደበኛ መሳሪያዎችፕሮግራሚንግ - የንፅፅር ኦፕሬተሮች ፣ የስርዓተ-ጥለት ማዛመጃ መለኪያዎች ፣ ተግባራት ዝርዝር - እና የቁምፊ ክልሎችን ለማስገባት አቋራጮች አሉት። ፐርል የሚፈልጉትን በፍጥነት እንዲያገኙ የፋይል ሙከራዎችን ያቀርባል።

በፐርል ውስጥ በጣም ጠቃሚው የፋይል ሙከራዎች

ከፐርል ጋር ፕሮግራሚንግ ማድረግ በጣም ቀላል ነው፣ ይህም ፋይሎችን ለመፈተሽ ለሚጠቀሙባቸው ፊደሎች የሚደረግ ነው። ለምሳሌ፡- አርፋይሉ ይችል እንደሆነ ያጣራል። አርኢድ፣ አ ፋይል መፈለግ ext. በጣም የበዙት እነኚሁና። ጠቃሚ ሙከራዎችበፐርል ውስጥ ያሉ ፋይሎች

በፐርል ውስጥ ልዩ ቁምፊዎች

ልክ እንደ ማንኛውም የፕሮግራም አወጣጥ ቋንቋ፣ ፐርል ይጠቀማል ልዩ ቡድኖችልዩ ቁምፊዎችእንደ ተገላቢጦሽ ወይም ቀጥ ያሉ ትሮች። ስለዚህ, ጥሪ ፕሮግራም ማድረግ ከፈለጉ ወይም ድምፅወይም የሰረገላ መመለስ ብቻ፣ ለሚያመጣው ገፀ ባህሪ የሚከተለውን ሰንጠረዥ ያረጋግጡ፡-

ፐርል እውነት-ሐሰት ንጽጽር ኦፕሬተሮች

በፐርል ወይም በሌላ ቋንቋ ፕሮግራም ስታዘጋጅ የንፅፅር ኦፕሬተሮችን ሁልጊዜ ትጠቀማለህ። የሚከተለው ሰንጠረዥ ያሳያል አጠቃላይ ንጽጽሮችለፐርል በሁለቱም በሂሳብ እና በሕብረቁምፊ መልክ፡-

ግፋ (@r, @s)

splice (@r, $#r + 1, 0, @s)

ማንኛውም ቁጥር

1 ወይም ከዚያ በላይ ጊዜ አዛምድ

*

ግጥሚያ 0 ወይም ከዚያ በላይ ጊዜ >?

ይህ ጽሑፍ የተፃፈው በምክንያት ለሆኑ ሰዎች ነው። ከአቅም በላይ የሆነ ጉልበትፐርልን የማጥናት ፍላጎት በአስቸኳይ ተሰማኝ። ለእኔ፣ ይህ ሁኔታ ኮምፒውተሬ WEB አገልጋይ የሆነበት ሁኔታ ነበር፣ እና እኔም በዚህ መሰረት የWEB ጌታ ሆንኩ። ከሌሎች ሰዎች ስህተት እና ልምድ መማር የተለመደ ነው፣ስለዚህ ዕንቁን የማጥናት ልምዴን ወደ እርስዎ ትኩረት አመጣለሁ።

ይህ ሁሉ ለማን እንደተጻፈ ወዲያውኑ ማስረዳት ያስፈልጋል። አገልጋይዎ እየሰራ ከሆነ UNIX መድረክ, ከዚያ ጽሑፍህን ማንበብ አለብኝ. ዊንዶውስ ኤንቲ መሥሪያ 4.0 (RUS) ተጭኗል የአገልግሎት ጥቅል 3. ኮምፒውተሬን ወደ ዌብ ሰርቨር የምቀይርበት ጊዜ ሲደርስ ወደ አብሮገነብ አገልግሎቶች ሄድኩ። WEB አንጓ, ግን በፍጥነት እንዳልወደድኩት ተገነዘብኩ (ለምን?). እና ከዚያ አንድ ደግ ሰው Xitami ን ለመጫን መከረ የድር አገልጋይከ iMatix ኮርፖሬሽን (), እሱም እስከ ዛሬ ድረስ.

እንደ ፐርል እራሱ, በተወሰነ ደረጃ የተወሳሰበ ነው. በተለያዩ የፐርል ሰርቨሮች (www.perl.org፣ www.perl.com) ከተመለከትኩ በኋላ፣ በጣም ብዙ የፐርል ስሪቶች እንዳሉ ተማርኩኝ እናም አንድ የተወሰነ ነገር መምረጥ በጣም ከባድ ነው። በተመሳሳይ ጊዜ, በማንኛውም ቦታ አንድ ወይም ሌላ ስሪት ምርጫ ላይ ምንም ሊረዱ የሚችሉ ምክሮች የሉም. ለዊንዶውስ ሁሉንም ማለት ይቻላል ስሪቶችን ከሞከርኩ በኋላ ንቁ ፐርል ()ን መርጫለሁ።

በሁሉም ዓይነት ዊንዶውስ እና ዴልፊ ለተበላሸ ሰው በፔርል ውስጥ ፕሮግራሞችን መጻፍ በጣም ያልተለመደ ነው ፣ ስለሆነም ፐርል ገንቢን ወዲያውኑ እንዲጭኑ አበክረዋለሁ። በ www.solutionsoft.com ማግኘት ይችላሉ። በዚያ የሰላሳ ቀን ማሳያ ስሪት ነበር።

እንግዲህ በቀጥታ ወደ ነጥቡ የምንገባበት ጊዜ አሁን ይመስለኛል። በአጠቃላይ፣ የፐርል ስክሪፕት፣ ልክ እንደሌላው ፕሮግራም፣ እንደዚህ ይሰራል።

  1. ውሂብ ይቀበላል
  2. ውሂብን ያስኬዳል
  3. ውጤቶችን ይሰጣል

በሁለት ዘዴዎች - GET እና POST በመጠቀም ውሂብ ወደ ስክሪፕቱ ማስተላለፍ ይችላሉ. በመካከላቸው ያለው ልዩነት መቼ ነው GET በመጠቀምውሂብ በአሳሹ የአድራሻ አሞሌ ውስጥ ያለማቋረጥ ይንጠለጠላል፣ ለምሳሌ፡-

http://treagraf.tasur.edu.ru/cgi-bin/price.pl?መደብ=POWER&Description=varta

በዚህ አጋጣሚ የB_price.pl ስክሪፕት ውሂቡን ወደ ውስጥ ይወስዳል የአካባቢ ተለዋዋጭ QUERY-STRING

$data=$ENV("QUERY_STRING");

ዘዴውን ሲጠቀሙ የPOST ውሂብተላልፏል መደበኛ ግቤትስክሪፕት የውሂብ እገዳው ርዝመት የሚወሰደው በCONTENT_LENGTH ተለዋዋጭ ነው፡-

አንብብ(STDIN፣$ዳታ፣$ENV("CONTENT_LENGTH"));

አሁን ይህ ውሂብ ኢንኮድ ስለተደረገ ወደ ተፈጭቶ ፎርም መተርጎም አለበት።

መደበኛ ኮንቬንሽኑ ክፍተቶችን በፕላስ ምልክቶች መተካት እና ከዚያ የቀሩትን ልክ ያልሆኑ ቁምፊዎችን በአስራስድስትዮሽ (%) ምልክት በማስቀደም የASCII ኮዶችን መጠቀም ነው። ለምሳሌ፥

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl\?መደብ=%C2%E8%E4%E5%EE&Description=%E0%E1%E2%E3

ይህ ማለት፡-

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl?\ ምድብ=ቪዲዮ&Description=abvg

የመጠይቁን ሕብረቁምፊ እራስዎ ለመጀመሪያ ጊዜ መፍታት የተሻለ ነው። "እንዴት?" ለሚለው ጥያቄ እንደገና ለመጻፍ ምንም ትርጉም የሌላቸው ብዙ መልሶች አሉ. አንድ አጭር ምሳሌ ልስጥህ፡-

(+) ምልክቶችን በቦታ ይተኩ

$ጥያቄ = ~ s/\+/ / g;

ከዚያ ሁሉንም የ (%) ምልክት ጥምረቶችን ፣ በመቀጠል ሄክሳዴሲማል አሃዞችን ፣ በተዛማጅ እንተካለን። ASCII ቁምፊ

$ጥያቄ =~ s/%((2))/ጥቅል("C"፣ hex($1))/ለምሳሌ;

Perl Builder የሚያቀርበውን እጠቀማለሁ፡-

#! E:\ perl5\bin\ perl # ወደ መረጃ ማግኛው መደበኛ ሁኔታ ይደውሉ $ ምድብ = $ መስክ ("ምድብ"); ከምድብ መስክ # መረጃ ያግኙ $ መግለጫ = $ መስክ ("መግለጫ"); # መረጃ ከመግለጫ መስክ $ ገጽ = $ መስክ ("ገጽ") ያግኙ; # ከገጹ መስክ ውሂብ ያግኙ

በስክሪፕቱ መጨረሻ ላይ ለ "ግልጽ" የውሂብ ንባብ ንዑስ ክፍል እናስቀምጣለን.

ንዑስ GetFormInput ((*fval) = @_ ከሆነ @_፤ አካባቢያዊ ($buf)፤ ከሆነ ($ENV("REQUEST_METHOD") eq "POST") ((STDIN,$buf,$ENV("CONTENT_LENGTH") አንብብ) ሌላ ($buf=$ENV("QUERY_STRING")) ከሆነ ($buf eq "") (ተመለስ 0;) ሌላ (@fval=የተከፋፈለ(/&/,$buf); foreach $i (0 . $#fval)(((ስም፣$val)=ተከፋፈለ(/=/፣$fval[$i]፣2)፤$val=~tr/+/ /፤ $val=~ s/%(.. )/ማሸግ("c",hex($1))/ge; $name=~tr/+/ /;$name=~ s/%(..) ge; ከሆነ (! የተገለጸ($ፊልድ($ስም))) ($ፊልድ($ስም)=$val;) ሌላ ($ፊልድ($ስም) .= ",$val"፤ #ብዙ ምርጫዎችን ከፈለጉ ወደ ድርድር ለመቀየር ወደ፡#$ መስክ($ስም) .= "\0$val";)) መመለስ 1;

የስክሪፕቱ ሁለተኛ ደረጃ - የውሂብ ሂደት - ሙሉ በሙሉ በእርስዎ ውሳኔ ነው። የተቀበለውን ውሂብ ትክክለኛነት ያረጋግጡ, ወደ ፋይል ይፃፉ, የሚፈልጉትን ያድርጉ.

በመጨረሻም አሳሹ በትክክል እንዲያሳያቸው አንዳንድ ውጤቶችን ለደንበኛው አሳሽ መስጠት አለቦት። ማለትም ውጤቱን በኤችቲኤምኤል ውስጥ ማሳየት ያስፈልግዎታል። ይህ በቀላሉ ይከናወናል: (በተለያዩ መንገዶችም ሊከናወን ይችላል)

አትም "የይዘት አይነት፡ ጽሑፍ/html"፣ "/n/n"; #የሚያስፈልግ የመስመር ማተም"

በምድብ መስክ ውስጥ ያስገቡት: ", $ ምድብ,"

ይህ ሁሉ በኤችቲኤምኤል ገጽ ላይ ካለው ቅጽ ላይ መረጃን በሚቀበሉ ስክሪፕቶች ላይ ይሠራል። በዚህ ሁኔታ, ቅጹ ያለው ገጽ የተለየ ነው, ስክሪፕቱ የተለየ ነው. የበለጠ ቆንጆ እና የበለጠ ምቹ እንዲሆን ማድረግ ይችላሉ: ገጹን እና ስክሪፕቱን ወደ አንድ ሙሉ ያጣምሩ. ይህንን ለማድረግ, ስክሪፕቱ በሚከተለው እቅድ መሰረት ይፃፋል.

  1. መጀመሪያ ሲጀመር ስክሪፕቱ ይስላል HTML ገጽበ ACTION መለያ ውስጥ ካለው ቅጽ እና አገናኝ ጋር ለራሱ። የመጀመሪያው አሂድ የሚወሰነው የግቤት ውሂብ ባለመኖሩ ነው.
  2. የግቤት ውሂብ ካለ, እንቀበላለን, እንሰራዋለን እና ውጤቶችን እናመጣለን.

#! E:\ perl5\bin\ perl ከሆነ (($ENV("QUERY_STRING") eq "") ወይም ($ENV(CONTENT_LENGTH)=0)) (# ከቅጹ ጋር ገጽ ማመንጨት ) ሌላ (# ውሂብ መቀበል፣ሂደት እና ውጤቱን ያውጡ)

የእንግዳ መጽሐፍ

የእንግዳ መጽሐፍ አጠቃላይ ስልተ ቀመር እንደሚከተለው ነው

1. አንድ ጎብኚ በመጽሐፉ ውስጥ መግባት ከፈለገ, ከዚያ
1.1 መረጃ ማግኘት
1.2 ወደ ፋይል ወይም የውሂብ ጎታ ጻፋቸው
1.3 ለኤችቲኤምኤል አመሰግናለሁ እንላለን እና ሌሎች ግቤቶችን እንዲያነቡ እንመክራለን
2. ጎብኚው በመጽሐፉ ውስጥ ያሉትን ጽሑፎች ማንበብ ከፈለገ, ከዚያ
2.1 መዝገቦችን ከፋይል ወይም ከዳታቤዝ ማንበብ
2.2 በኤችቲኤምኤል ውስጥ በሚያምር ሁኔታ እናሳያቸዋለን

ለግንዛቤ ቀላልነት ነጥቦችን 1 እና 2ን በተለየ ስክሪፕቶች add_guestbook.pl እና read_guestbook.pl ቀረጽኩላቸው። የእንግዳ መጽሐፍ መልእክቶች ተከማችተዋል። የጽሑፍ ፋይልመስመር በመስመር, ማለትም. ለእያንዳንዱ መዝገብ አንድ መስመር አለ. ይህ ፋይል ለማንበብ ቀላል ለማድረግ ነው. የአንድ ግቤት ምሳሌ፡-

ሳት ዲሴምበር 5 13፡31፡20 1998&ናታሻ&ተማሪ&ጥሩ& ​​ጥሩ። በዚህ መስክ ስኬታማ እንድትሆን እመኛለሁ አሌክሳንደር!&no@yet&194.226.60.34

በጥያቄ ውስጥ ባለው የእንግዳ መጽሐፍ ውስጥ የመስኮቹ መግለጫ እዚህ አለ።

  • ስም - የመጀመሪያ ስም, የአባት ስም, የአባት ስም, ቅጽል ስም - በጎብኚው ውሳኔ
  • ሥራ - ሙያ, ሥራ
  • RadioButton - ሶስት አዝራሮች ወድጄዋለሁ (ጥሩ) ፣ አልወደውም (መጥፎ) ፣ ግድ የለኝም (የተለየ)
  • ጽሑፍ - የአስተያየቶች እና ማስታወሻዎች የጽሑፍ ሳጥን
  • ኢሜል - የመመለሻ አድራሻ

ፐርልን መማር የሚፈልጉ ቢያንስ ሁለት ሰዎችን እንዳውቅ ሆነ። ይህንን ጽሑፍ በተለይ ለእነሱ ለመጻፍ ወሰንኩ.

  • ክፍል 1፡ ተለዋዋጭ ዓይነቶች (ይህን ክፍል እያነበብክ ነው)

እዚያ ምሳሌዎችን ያገኛሉ ቀላል ፕሮግራሞችከተከታታዩ "የህትመት ቁጥሮች ከ 1 እስከ 5" እና የመሳሰሉት. ሁልጊዜ ከምሳሌዎች መማር እወዳለሁ - ከመጽሃፍቶች ወይም ከሴሚናሮች የበለጠ አስደሳች እና ፈጣን ነው። እንዲሁም በዚህ ብሎግ ላይ ያሉትን ልጥፎች ማየት ይችላሉ - ብዙ ምሳሌዎችን እዚያ ማግኘት ይችላሉ።

በት/ቤት/ኢንስቲትዩት ፓስካል/ዴልፊን፣ሲ ወይም ቢያንስ ቤዚክን እንዳጠናህ እገምታለሁ፣ እና ተግባር እና loops ምን እንደሆኑ ማብራራት አያስፈልግም። ጉዳዩ ይህ ካልሆነ፣ ምንም አይደለም፣ እሱን ለማወቅ ብቻ፣ ወጪ ማድረግ ይኖርብዎታል ተጨማሪ ጊዜዊኪፔዲያን ለማንበብ. የባሽ ስክሪፕት እንዴት እንደሚሰራ ካላወቁ ወይም ለምን በስክሪፕቱ የመጀመሪያ መስመር ላይ የሆነ ነገር መጻፍ አለብዎት #!/ቢን/ሽለማወቅ ትንሽ ጎግል ማድረግ አለብህ።

በተለይ “ፐርል በጣም የተወሳሰበ መሆኑ እውነት ነው”፣ “በፐርል ላይ ምን መጽሃፎችን ልትመክር ትችላለህ” እና እንዲያውም “ኡ... አሁንም በፐርል ተጽፏል?” ለሚሉት ጥያቄዎች ፍላጎት ላላቸው ሰዎች፣ ሚኒ- ጻፍኩኝ። በHabraHabr ላይ ማንበብ የምትችለው በፐርል ላይ የሚጠየቁ ጥያቄዎች. እና ለእነዚያ ብዙ ፊደላትን አላጠናከረምእዚህ ላይ አጭር ማጠቃለያ እሰጣለሁ፡-

  • ፐርል - ዘመናዊ ቋንቋየሚጽፉበት እና በጣም ረጅም ጊዜ የሚጽፉበት ፕሮግራሚንግ።
  • ፐርል፣ ልክ እንደሌላው የፕሮግራም አወጣጥ ቋንቋ፣ ጥቅሞቹ፣ ጉዳቶቹ እና አፕሊኬሽኖቹ አሉት። አለ። በእውነት ትልቅፐርል ከ5+ ጋር የሚፈታው የችግሮች ክፍል።
  • የፐርል አገባብ ከC++ ወይም Java syntax የበለጠ የተወሳሰበ አይደለም። ይህንን ጽሑፍ እስከ መጨረሻው በማንበብ ይህንን ማረጋገጥ ይችላሉ.
  • ጥሩ፣ ግን ብዙ ወጪ የማይጠይቁ የፐርል ትምህርቶች አሉ። እንዲሁም የአፍ መፍቻ ቋንቋዎን የሚናገሩ የፐርል ፕሮግራመሮችን ማህበረሰብ በመስመር ላይ በቀላሉ ማግኘት ይችላሉ።
  • ፐርል በሁለቱም ስር በደንብ ይሰራል ስርዓተ ክወናዎች UNIX ቤተሰብ, እና በክፉ ዊንዶውስ ስር.

መደመር፡እንዲሁም ፐርል vs ፓይዘን vs ሩቢ vs ፒኤችፒ እና የፕሮግራሚንግ ካህናት ጽሁፎችን እንዲያነቡ እመክራለሁ። የመጀመሪያው ስለ የተለያዩ የስክሪፕት ቋንቋዎች አፈጻጸም ይናገራል, ሁለተኛው ደግሞ ይናገራል የ PHP ልዩነቶችከሌሎች ቋንቋዎች. ለ Python አድናቂዎች፣ የ Python ስክሪፕት አፈጻጸም ፈተና የሚለውን ጽሑፍ እንዲያነቡ እመክርዎታለሁ። እነዚህ ቁሳቁሶች "ስለ ፐርል ምን ጥሩ ነው" ለሚለው ጥያቄ መልስ ለማግኘት እንደሚረዱዎት ተስፋ አደርጋለሁ.

ሰላም % የተጠቃሚ ስም%!

ስለዚህ የመጀመሪያውን የፐርል ስክሪፕታችንን አስቀድመን እንፃፍ!

#!/usr/bin/perl

$ስም = ፈረቃ () ;
ማተም ("ሰላም, $ ስም! \n") ;

ስክሪፕቱን እናካሂድ፡-

$ chmod u+x 1 .pl
$ ./ 1 .pl afiskon
ሰላም አፊስኮን!

እዚህ ሁሉም ነገር በጣም ቀላል ነው-

  • የስኬር ተለዋዋጮች ስሞች (ማለትም፣ ድርድር ወይም ሃሽ ሳይሆን፣ ምን እንደሆኑ - ከታች ይመልከቱ) በዶላር ምልክት ይጀምራሉ።
  • የመቀየሪያ ተግባር የሚቀጥለውን የስክሪፕት ክርክር ይመልሳል። በሌላ አነጋገር, የመጀመሪያው ጥሪ ወደ shift () የመጀመሪያውን ክርክር ይመልሳል, ሁለተኛው ጥሪ ሁለተኛውን ክርክር ይመልሳል, ወዘተ.
  • የህትመት() ተግባር የተላለፈውን ሕብረቁምፊ እንደ ነጋሪ እሴት ያትማል።
  • ተለዋዋጭ እሴቶችን ወደ መስመር መተካት ይችላሉ (መስመር 4 ይመልከቱ)። ስለ ሕብረቁምፊዎች ተጨማሪ መረጃ ለማግኘት ከታች ይመልከቱ።

እስካሁን በጣም ግልጽ ካልሆነ, ያ ደህና ነው. ምናልባት ትንሽ ንድፈ ሐሳብ ትንሽ ግልጽነት ያመጣል.

ተለዋዋጭ ዓይነቶች

በፐርል ውስጥ ሶስት ዋና ዋና ተለዋዋጮች አሉ፡- scalars(ቁጥሮች እና ሕብረቁምፊዎች) ፣ ድርድሮች- በፓስካል ወይም ሲ ውስጥ ጥቅም ላይ ከዋሉት ጋር ተመሳሳይ (አንዳንድ ጊዜ ድርድሮች ቬክተር ተብለው ይጠራሉ) እና hashes (ተባባሪ ድርድሮች).

Scalarsቀደም ባለው ምሳሌ ውስጥ አስቀድመን ተጠቀምን. scalarsን የሚገልጹ አንዳንድ ተጨማሪ ምሳሌዎች እዚህ አሉ።

#!/usr/bin/perl

$a = 123;
$b = - 7.496;
$c = 0xABC; # 2748 እኩል ነው፣ አዎ አስተያየት ነው :)
$d = ($a +$b) / $c;
$d *=$a; # ልክ እንደ $d = $d * $a;

$str1 = "ሰላም";
$str2 = "$str1, ዓለም"; # $str2 "ሄሎ፣ ዓለም" ይዟል።
$str3 = $a " \n". $str2;
$str4 = "$str1"; # $str4 የያዘው "$str1" ሳይሆን "ሄሎ" አይደለም

እዚህ አወንታዊ እና አሉታዊ, ኢንቲጀር እና ክፍልፋይ ቁጥሮች, ቁጥሩን በሄክሳዴሲማል ኢንኮዲንግ ያዘጋጁ, ይጨምሩ, ያባዙ እና ያካፍሉ - ሁሉም ነገር በ C ወይም Java ውስጥ ነው. ከላይ ከተጠቀሱት ኦፕሬሽኖች በተጨማሪ ፐርል የገለጻውን ተግባር ይደግፋል፡-

$a = 2 ** 8;

# ውጤት፡ 256 በሕብረቁምፊዎች ፣ ሁሉም ነገር በአንዳንድ ፒኤችፒ ውስጥ ካለው ጋር ተመሳሳይ ነው። ነጥቡ ማለት የማገናኘት ክዋኔው ነው (ይህም ሕብረቁምፊዎች አንድ ላይ "ማጣበቅ");(\n)፣ ትሮች (\t)፣ ጥቅሶች (\)፣ የኋለኛው ግርዶሽ ራሱ (\\)፣ የዶላር ምልክት ያለ ምንም ተለዋዋጭ ምትክ (\$) እና ሌሎችም። ሕብረቁምፊው ከገባ። ነጠላ ጥቅሶች, በውስጡ ያሉት ምልክቶች "እንደሆነ" ተተርጉመዋል, ያለ ተለዋዋጭ ምትክ, ወዘተ.

ልክ እንደ ፒኤችፒ፣ ፐርል በቀዶ ጥገናው ላይ በመመስረት ስካላሮችን እንደ ቁጥሮች ወይም ሕብረቁምፊዎች ይተረጉማል። ቀላል ነው፡-

$int1 = "11" + 22;
# ^ ሕብረቁምፊ "11" ወደ ቁጥር ይቀየራል,
# ከዚህ በኋላ መደመር ይከናወናል ፣ ውጤቱም 33 ።
$str1 = "11"
22;
# 2 ቁጥር 22 ወደ ሕብረቁምፊ ይቀየራል ፣

# ከዚያ በኋላ ማገናኘት ይከናወናል, ውጤቱም "1122" ነው.

ከሕብረቁምፊ ወደ ቁጥር የመቀየር ደንቦች እና በተቃራኒው በ PHP ውስጥ አንድ አይነት ናቸው.
$str1 = 0
"abc";
# ^ ውጤቱ "abc" ነው, ዜሮ ቁጥር ወደ ባዶ ሕብረቁምፊ ይቀየራል
$int1 = "አአ" + 1;
# ^ ውጤቱ 1 ነው ፣ በ "aaa" ሕብረቁምፊ ውስጥ ምንም ቁጥሮች የሉም

$int2 = "12aaa" + 1; # ^ ውጤቱ 13 ነው ፣ የሕብረቁምፊው የመጀመሪያ አሃዞች ብቻ ግምት ውስጥ ይገባሉ።በነገራችን ላይ ለማስታወቂያው

ረጅም መስመሮች
ልዩ ኦፕሬተሮች አሉ - q እና qq:
# ከነጠላ ጥቅሶች ጋር ተመሳሳይ
} ;
$ጽሑፍ = q (
15 ዶላር አለህ?
# ከድርብ ጥቅሶች ጋር ተመሳሳይ
$message = qq (
} ;

ሰላም፣ የተጠቃሚ ስም!ስላም፧

#!/usr/bin/perl

ከ Arrays ጋር በመስራት ላይ
እንደሚከተለው ይከሰታል $scalar = "በበበበ";
($a,$b) = (1, 2);
# ልክ እንደ $a = 1; $b = 2; \n";
@arr = ("aaa" , 123, $scalar, $a + $b);
$arr [1] ያትሙ። " \n";

ግፋ @arr, $a; የህትመት ፖፕ (@arr) . "እዚህ 4 አካላትን (መስመር 5) የያዘ ድርድር @arr እንፈጥራለን። ከዚያም ሁለተኛውን ንጥረ ነገር (መስመር 6) እናወጣለን. የንጥረ ነገሮች ቁጥር ከዜሮ ይጀምራል, ስለዚህ ኢንዴክስ 1 ሁለተኛውን ኤለመንት ለማሳየት ይጠቅማል ከዚያም የተለዋዋጭውን $a በድርድር መጨረሻ ላይ እናስቀምጠዋለን (የግፋ ተግባር, መስመር 7) እና ወዲያውኑ አውጥተው እናሳያለን.

ፖፕ ተግባር

መስመር 8) እባክዎን የድርድር ስሞች የሚጀምሩት በ "ውሻ" እንጂ በዶላር አለመሆኑን ልብ ይበሉ (ለማስታወስ አስቸጋሪ አይደለም - ተጓዳኝ ምልክቶች ከእንግሊዝኛ የመጀመሪያ ፊደላት ጋር ተመሳሳይ ናቸው $ - scalar, @ - array). የሁለተኛው ድርድር አባል (መስመር 6) ሲደርሱ የዶላር ምልክቱ ጥቅም ላይ ውሏል ምክንያቱም የድርድር ኤለመንት scalar ነው። መጀመሪያ ላይ ይህ ብዙ ግራ መጋባትን ያመጣል, ነገር ግን በአጠቃላይ ሁሉም ነገር ምክንያታዊ ነው.በተጨማሪም በዚህ ስክሪፕት ውስጥ እንጠራራለን

የህትመት ተግባራት

እና ያለ ቅንፍ ግፋ. በፐርል ውስጥ, አንድ ተግባር ሲደውሉ, አሻሚነት በማይፈጥርበት ቦታ ሁሉ, ቅንፍዎቹ ሊቀሩ ይችላሉ.
ክፍተቶቹ የሌላቸው ሕብረቁምፊዎች የሆኑትን ድርድር ለማወጅ ልዩ ኦፕሬተር አለ - qw:

@arr = qw/aaa bbb ccc/;ከድርድር ጋር ተመሳሳይ ናቸው፣ ነገር ግን በሃሽ ውስጥ ያሉት ንጥረ ነገሮች አልታዘዙም። በዚህ አጋጣሚ ሕብረቁምፊዎች አንድ አካል የሚደረስበት ቁልፍ ሆኖ ሊያገለግል ይችላል።

#!/usr/bin/perl

% hash = ( # ሃሽ እና ድርድር ሲያውጁ ማድረግ ይችላሉ።
"x" => 12 ፣ # የመስመር መግቻዎችን ይጠቀሙ
y => 53 ፣ # በቁልፍ ውስጥ ምንም ልዩ ቁምፊዎች ከሌሉ, ጥቅሶች አያስፈልጉም
"z" => - 10.5 # መጨረሻ ላይ ነጠላ ሰረዝ መተው ትችላለህ
) ;

$hash("x")++; # x መጋጠሚያ አሁን 13 ነው።
$ hash ( y ) --; # y መጋጠሚያ አሁን 52 ደርሷል

# የማሳያ መጋጠሚያዎች
ማተም "x = $hash(x)፣ y = $hash(y)፣ z = $hash(z)\n";

የሃሽ ስሞች በመቶኛ ምልክት ይጀምራሉ እና አንድን አካል ለማመልከት ያገለግላሉ። ማጠናከሪያዎች(ካሬ አይደለም, እንደ ድርድሮች ሁኔታ). ቁልፉ ስም አስቀድሞ የሚታወቅ ከሆነ, ያለ ጥቅሶች (መስመር 10) ሊገልጹት ይችላሉ.

በነገራችን ላይ የ$test፣ @test እና %የፈተና ተለዋዋጮች ሙሉ በሙሉ ነፃ የሆኑ የተለያዩ አይነቶች ተለዋዋጮች ናቸው።

በዚህ ጊዜ ወደ መሄድ ፈለግሁ ሁኔታዊ መግለጫዎችእና ለ/ ዑደቶች፣ ግን ለአንድ ልጥፍ በጣም ብዙ ጽሑፍ እንዳለ ተገነዘብኩ። ይህ በእንዲህ እንዳለ፣ ብዙ ጥያቄዎች ከመጋረጃ ጀርባ ይቀራሉ፡-

  • ሁኔታዊ መግለጫዎች;
  • ለ እና ጊዜ loops;
  • ተግባራት መግለጫ;
  • ከጅረቶች እና ፋይሎች ጋር መስራት;
  • ጥብቅ አገባብ;
  • የተዘጋጁ ሞጁሎችን እና ክፍሎችን መጠቀም.

ስለዚህ ጉዳይ ከሚከተሉት ጽሁፎች በአንዱ እጽፋለሁ. በዚህ ጽሑፍ ላይ ቢያንስ ሁለት አስተያየቶችን መቀበል እፈልጋለሁ - አስደሳች / የማይስብ ፣ ለመረዳት የሚቻል / ለመረዳት የማይቻል ፣ ወዘተ. በነገራችን ላይ ከፐርል ጋር የተያያዙ ጥያቄዎች ካሉዎት (ከዚህ ጽሑፍ ጋር የግድ የተገናኘ አይደለም) በአስተያየቶቹ ውስጥ ለመጠየቅ ነፃነት ይሰማዎ!

በፔርል ውስጥ ስለ ፕሮግራሚንግ እነዚህ ተከታታይ ልጥፎች የመጀመሪያዎቹን ቀላል ስክሪፕቶችዎን እንዲጽፉ ይረዳዎታል ብዬ ተስፋ አደርጋለሁ። ከጊዜ በኋላ ስክሪፕቶች ይበልጥ የተወሳሰቡ ይሆናሉ፣ አዳዲስ ቴክኖሎጂዎችን ይጠቀማሉ (OOP፣ መደበኛ መግለጫዎች) እና ከጥቂት ጊዜ በኋላ የእርስዎን ተሞክሮ ለሌሎች ለማካፈል ስለ ፐርል በቂ እውቀት እንዳለዎት ያገኛሉ።

መቅድም በኛ አስተያየት ለአንባቢው ይህንን መፅሐፍ ያስፈልገው እንደሆነ የሚወስንበትን መረጃ መስጠት አለበት።

መጽሐፋችን ስለ ምንድን ነው? እሱ በተፈጥሮው ስለ ፐርል ቋንቋ ነው, ምክንያቱም በርዕሱ ውስጥ የተናገረው ነገር ነው. ማን ያስፈልገዋል ይህ ፐርል? CGI ስክሪፕቶችን የሚፈጥሩ፣ የግራ መዳፊት ቁልፍን ከመንካት ይልቅ ስክሪፕቶችን በመፃፍ ስርዓቱን ያስተዳድራሉ፣ ጽሁፎችን ያካሂዳሉ እና ሌሎች ብዙ ስራዎችን ከ ተዛማጅ አካባቢዎችእና በተመሳሳይ ጊዜ ለመፍጠር የሚያስችል ኃይለኛ, ግን ለአጠቃቀም ቀላል የሆነ መሳሪያ ያስፈልገዋል ትላልቅ ፕሮግራሞችእና ትናንሽ ፕሮግራሞች እና በፍጥነት ሞክራቸው. እንዲሁም በማስተማር ሂደት ውስጥ ጥቅም ላይ በሚውሉ ባህላዊ የፕሮግራም ቋንቋዎች ውስጥ የጎደሉ አስደሳች ባህሪዎች ስላሉት ፕሮግራሚንግ የሚያስተምሩ ሰዎች የዚህን ቋንቋ ግንዛቤ እንዲኖራቸው ይጠቅማል።

አንዳንድ የቋንቋውን ባህሪያት እንወዳለን፡ የውጤቱ ጥገኝነት በዐውደ-ጽሑፉ፣ አሶሺዬቲቭ ድርድሮች፣ የታይፕግሎብ ዳታ ዓይነት፣ ፓኬጆች፣ የነገር ተኮር ፕሮግራሚንግ አተገባበር እና በእርግጥ የጽሑፍ ማቀናበሪያ ፋሲሊቲዎች። ቢያንስ ምን ማለት እንደሆነ ለማወቅ ፍላጎት ከሌለዎት መጽሐፉን ማስቀመጥ ይችላሉ. ከላይ የተዘረዘሩትን ሁሉንም ነገሮች አስቀድመው ካወቁ, ወደ ጎን ማስቀመጥም ይችላሉ, ምክንያቱም ይህ መጽሐፍ ፐርልን በራሳቸው ለመማር ገና ለጀመሩ አንባቢዎች ነው.

የፐርል ቋንቋ ተፈጥሯል። የስርዓት ፕሮግራመርላሪ ዎል እንደ UNIX መሣሪያ ሆኖ ከአስተዳደራዊ ፣ ከጽሑፍ ማቀናበሪያ ፣ ወዘተ ጋር የተያያዙ ተግባራትን ለመፍታት የግለሰብ ተግባራትን ከሚያከናውኑ ፕሮግራሞች ትላልቅ ስክሪፕቶችን "እንዲጣበቁ" ያስችላል ። በኋላም ከዚህ ማዕቀፍ አልፈው ወደ እውነተኛ ፕሮግራሚንግ ተለወጠ። ባለፉት አስርት ዓመታት ውስጥ በፕሮግራሚንግ ቴክኖሎጂ ውስጥ የተከሰቱትን ብዙ አዝማሚያዎችን የሚያንፀባርቅ እና ከበይነመረቡ እድገት ጋር ተያይዞ በሰፊው ተስፋፍቶ የሚገኝ ቋንቋ። ፐርል የድር አገልጋዮችን ለማስተዳደር ችግሮችን ለመፍታት ምቹ የሆነ የ CGI መተግበሪያዎችን ለመፍጠር ዋና መሳሪያ ነው ፣ ኢሜይልእና ሌሎች ስርዓቶች. በዚህ ቋንቋ ስክሪፕቶችን ለመፃፍ ፈጣን እና ቀላልነት ምስጋና ይግባውና ወደ ሌሎች መድረኮች ተሰራጭቷል፡- DOS፣ Windows፣ OS/2፣ Mac፣ VMS፣ ወዘተ.የፐርል ቋንቋ ከዋናዎቹ ጥቅሞች አንዱ ክፍትነቱ እና ተደራሽነቱ ነው። ውስጥ የበይነመረብ አውታረ መረቦችሙሉ በሙሉ በነጻ ማግኘት ይችላሉ ምንጭ ጽሑፎችየፐርል አስተርጓሚ (ፐርል የተተረጎመ ቋንቋ ነው, እሱም በአንዳንድ ሁኔታዎች ጥቅም ነው) እና የእሱ ቅጥያ ሞጁሎች.

ይህ መጽሐፍ ለፐርል ቋንቋ የራስ-ትምህርት መመሪያ ነው, እነሱ እንደሚሉት, ከባዶ ያጠናል, ማለትም አንባቢው ይህንን ቋንቋ አያውቅም ተብሎ ይታሰባል - ርዕሶችን በተከታታይ በማጥናት የሚፈልገውን ሁሉ ይማራል. በእያንዳንዱ ምዕራፍ መጨረሻ ላይ የቀረቡትን ነገሮች ማጠናከር፣ ጥያቄዎችን መመለስ እና መልመጃዎችን ማከናወን። የታቀደው ቁሳቁስ የፐርል ቋንቋን መሰረታዊ ነገሮች ብቻ እንደሚወክል እንድገመው. ይህ መጽሐፍ በምንም መንገድ በፐርል ፕሮግራሚንግ ላይ የመማሪያ መጽሐፍ እንዲሆን የታሰበ አይደለም። በውስጡም ችግሮችን ለመፍታት የፕሮግራም አወጣጥ ዘዴን ወይም ዝግጁ የሆኑ የምግብ አዘገጃጀቶችን አያገኙም, አያደርግም ዝርዝር መግለጫበብዛት ጥቅም ላይ የዋሉ ሞጁሎች እና በእነሱ እርዳታ ችግሮችን መፍታት ፣ ግን መጽሐፉን ካነበቡ በኋላ ያገኛሉ መሰረታዊ እውቀት, የትኛውንም የፐርል ስክሪፕት እንዲረዱ ያስችልዎታል.