பெர்ள்

கட்டற்ற கலைக்களஞ்சியமான விக்கிப்பீடியாவில் இருந்து.
(பெர்ள் நிரலாக்க மொழி இலிருந்து வழிமாற்றப்பட்டது)
தாவிச் செல்லவும்: வழிசெலுத்தல், தேடல்
Perl
பெர்ள்
Programming-republic-of-perl.png
நிரலாக்க கருத்தோட்டம்: Multi-paradigm
தோன்றிய ஆண்டு: 1987
உருவாக்குநர்: Larry Wall
மிக அண்மைய வெளியீடு: 5.10.0 / திசம்பர் 18 2007 (2007-12-18), 2503 நாட்களுக்கு முன்னதாக
இயல்பு முறை: Dynamic
பிறமொழித்தாக்கங்கள்: AWK, BASIC, BASIC-PLUS, C, C++, Lisp, Pascal, sed, Unix shell
இம்மொழியினால் ஏற்பட்ட தாக்கங்கள்: பைத்தான், பிஎச்பி, ரூபி, ECMAScript, Dao, Windows PowerShell
இயக்குதளம்: Cross-platform
அனுமதி: குனூ பொதுமக்கள் உரிமம், Artistic License
இணையத்தளம்: http://www.perl.org/

பெர்ள் (Perl) ஒரு கணினி நிரலாக்க மொழி. இது ஒரு மேல் நிலை, இயங்கியல், படிவ நிரலாக்க மொழி வகையைச் சார்ந்தது. இதன் முதல் பதிப்பு 1987-ம் ஆண்டு ஆக்கர் லாரி வோல் (Larry Wall) என்பவரால் வெளியிடப்பட்டது. 1988 இல் இரண்டாவது பதிப்பும் 1989 இல் மூன்றாவது பதிப்பும் வெளியானது, பெர்ள் 6 விரைவில் வெளி வர இருக்கிறது. உரை ஆவணங்களை பகுப்பாய்வு செய்ய உதவும் சுருங்குறித்தொடர்களை பெர்ள் தொடக்கத்திலியே மொழியின் ஒரு கூறாக ஏதுவாக்கியது. உரை ஆவணப் பகுப்பாய்வு, கணினி நிர்வாகம், வலைப்பின்னல் நிரலாக்கம், தரவுதள வலை செயலிகள் வடிவமைப்பு போன்ற பல தேவைகளுக்கு பெர்ள் பயன்படுகிறது. இது ஒரு கட்டற்ற மென்பொருளாகும். குனு கட்டற்ற ஆவண உரிமத்தின் கீழும் வெளியிடப்படுகிறது.

மொழியின் பண்புகள்[தொகு]

இது சி, ஆக், செட், பேசிக் போன்ற பல நிரல் மொழிகளின் வசதிகளையும் தன்மைகளையும் உள்வாங்கி உருவாக்கப்பட்டது.[1] இருப்பினும் எழுத்துத்தொடர்களை(strings) எளிதில் கையாளும் வசதிகள் மற்றும் ஒத்த மொழிகளில் இருந்த சில கட்டுக்கள் இல்லாதிருத்தல் ஆகியவற்றால் இது பெரிதும் பயன்படுத்தப்படத் துவங்கியது.[2]

பின்னர், இதன் கட்டற்ற தன்மையும் எவர் வேண்டுமானாலும் பங்களிக்கலாம் என்ற உரிமமும்[3] அதற்கு வசதியான[4] பகுதிக்கூறு கட்டமைப்பும் (modular architecture) இதை ஒரு வளர்ந்த மேம்பட்ட நிரல் மொழியாக உருமாற்றியது. தற்போது ஏறத்தாழ அனைத்து பெரிய நிறுவனங்களிலும் ஏதேனும் ஒரு வடிவில் இது பயன்படுத்தப்படுகிறது.

இதன் உருவாக்குநர் மற்றும் துவக்க கால பங்களிப்போரின் சாய்வின் விளைவாக இது மனிதர்கள் பயன்படுத்தும் இயல்மொழிகளின் மொழியியலைப் பல இடங்களில் பின்பற்றுகிறது.[5] அணிகள்கூட இதில் உண்டு![6] இதனாலும், "எளிதானவற்றை இன்னும் எளிமையாக்குதல், முடியாதவற்றையும் கூடச் செய்யுதல்" மற்றும் "எதையும் பல வழிகளில் நிறைவேற்றும் வசதி" போன்ற கொள்கைகளினாலும், இது சற்றே மாறுபட்டு நிற்கிறது. பொதுவாக நிரல்மொழிகள் "சொல்வதைச் செய்"யும் மொழிகளாக இருக்குமிடத்தில் பெர்ள் "சொல்ல விழைந்ததைச் செய்"யும் மொழியாக உள்ளது. இந்த நோக்கில் இதில் பல வசதிகள் உள்ளன. எடுத்துக்காட்டாக தாமாகவுயிர்ப்பித்தல் போன்ற வசதிகள் பிற நிரல்மொழிகளில் அரிது.

மொழிச் சூழல்[தொகு]

தரவிறக்கம்[தொகு]

பெர்ள்.அமை (http://www.perl.org/) தற்போதைய பதிப்பை தரவிறக்காலாம்.

தரப்படுத்தல் அமைப்பு[தொகு]

பயனர் குழுக்கள்[தொகு]

  • CPAN

தொகுப்பி[தொகு]

பெர்ள் எளிமையான notepad, Crimson Editor போன்றவற்றிலும் தொகுக்கலாம் இருப்பினும் DzSoft Perl Editor போன்றவை கூடிய ஒத்துழைப்பு தரும். எடுத்துக்காட்டாக அவை ஒரு நிரலில் உள்ள தரவு இனங்களை, செயலிகளை இடப்பக்கக் கட்டத்தில் காட்டும். Regular expressions சோதனை செய்ய உதவும். மேலும் களை எடுக்கவும் உதவும்.

ஒருங்கிணைந்த உருவாக்க சூழல்[தொகு]

மொழி அமைப்பு[தொகு]

தரவினங்கள்[தொகு]

பெர்ள் மொழியில் ஐந்து தரவு இனங்கள் பரவலாய பயன்படுகின்றன. அவையானவை

  • திசையிலிகள் (scalars)
  • அணி (arrary)
  • hash
  • கோப்புப் பிடி - file handle
  • செயலி - subroutine
$foo # a scalar
@foo # an array
%foo # a hash
FOO # a file handle
&FOO # a constant (but the & is optional)
&foo # a subroutine (but the & is optional)

hash[தொகு]

#!/usr/bin/perl

my %req_command  = (Make => 'Juniper', 
                    OS_type => 'JunOS', 
                    Data_req => 'Serial num', 
                    Command => 'Show chassis hardware details');

my @hash_keys = keys (%req_command);

foreach my $key (@hash_keys){
        my $value = $req_command{$key};
        print "$key => $value \n";
        }
Command => Show chassis hardware details
Data_req => Serial num
OS_type => JunOS
Make => Juniper


தெரிவு[தொகு]

if ( expr ) block
if ( expr ) block else block
if ( expr ) block elsif ( expr  ) block ... else block

unless ( expr ) block
unless ( expr ) block else block
unless ( expr ) block elsif ( expr  ) block ... else block

சுற்றுக்கள்[தொகு]

For சுற்று[தொகு]

for (starting assignment; test condition; increment)
{
 code to repeat
} 

#எ.கா:

for ($i = 1; $i< 10; $i++){
      print $i;
      }

While சுற்று[தொகு]

while (test condition)
{
 code to repeat
}

#எ.கா:

$i = 1;
while ($i < 10){
        print $i;
        $1++;
        }

For each சுற்று[தொகு]

foreach variable_name (array_name)
{
 code to repeat
}

#hash
%coins = ( "Quarter" , 25,
           "Dime" ,    10,
           "Nickel",    5 );

# get the key value pair
foreach $key (sort keys %coins) {
     print "$key: $coins{$key}<br />";
}

செயலி[தொகு]

$a = 10;
$b = 10;

add($a, $b);

sub add{
    $c = $a + $b;
    print "This sum is: \n";
    print $c;
    }

கோப்பைக் கையாளல்[தொகு]

வாசித்தல்[தொகு]

$file = "test_file.txt";
open (FH_test_file, "<$file") or die "Cannot Open File \n";

    while ($line = <FH_test_file>){
            print $line, "<br />";
            }
close (FH_test_file);

எழுதுதல்[தொகு]

$file = "test_file_b.txt";
open (FH_test_file, ">$file") or die "Cannot Open File \n";
print FH_test_file "This will be written to the file";
close FH_test_file;

சுருங்குறித்தொடர்[தொகு]

பொருத்தி பார்[தொகு]

$test_string = "This is a test sentence";
if ($test_string =~ m/test/i){
     print "yes";
     }

மாற்றி பொருத்து[தொகு]

$test_string = "This is a test sentence";
$test_string =~ s/e/**/g;
print $test_string;

பெர்ள்ளில் பொருள் நோக்கு நிரலாக்கம்[தொகு]

முதன்மை - testclass.pl[தொகு]

#!/usr/bin/perl

# Use the pacakge
use object_a;

# Define new insance of object_a
my $ob_a = new object_a;

# Intialize data values
$ob_a -> data1("abc");
$ob_a -> data2("123");

# Print anc check
print $ob_a->data1;
print "<br />";
print $ob_a->data2;
print "<br />";

# Use method1
$ob_a->method1("A Test print");

வகுப்பு object_a.pm[தொகு]

package object_a;

# Constructor
sub new {
        my ($class, %param) = @_;

        my ($self) = {
             _data1 => undef,
             _data2 => undef,
        };
        bless ($self, $class);
        return $self;
        }#END Constructor

#Accessor method for data1
sub data1 {
        my ($self, $data1) = @_;
        $self->{_data1} = $data1 if defined($data1);
        return $self->{_data1};
        };
#Accessor method for data2
sub data2 {
        my ($self, $data2) = @_;
        $self->{_data2} = $data2 if defined($data2);
        return $self->{_data2};
        };
#Method of object_a
sub method1 {
       my ($self, $log_data) = @_;
       print $log_data;
       }
1;

வெளியீடு[தொகு]

abc
123
A Test print 

இதர தகவல்கள்[தொகு]

உள்ளமைவு கோப்பு[தொகு]

ஒவ்வொரு மென்பொருளுக்கும் அதற்கான உள்ளமைவு கோப்பை உருவாக்குவது நன்று.

projectConfig.pm

package projectConfig;

$projectConfig::var1 = "data123";
$projectConfig::var2 = "data456";

பயன்படுத்தல்

#!/usr/bin/perl
use projectConfig;

$configdata = $projectConfig::var1;
print $configdata;

இவற்றையும் பார்க்க[தொகு]

மேற்கோள்களும் குறிப்புகளும்[தொகு]

  1. Ashton, Elaine (1999). "The Timeline of Perl and its Culture (v3.0_0505)".
  2. Wall, Larry, Tom Christiansen and Jon Orwant (July 2000). Programming Perl, Third Edition. O'Reilly. ISBN 0-596-00027-8. 
  3. Usenet post, May 10th 1997, with ID 199705101952.MAA00756@wall.org.
  4. லாரி வால்: "பெர்ள் 5-ல் அறிமுகப்படுத்தப்பட்ட பகுதிக்கூறு கட்டமைப்பு பெர்ள் பண்பாட்டை வளர்ப்பதற்காவே அன்றி பெர்ள் கருனியை வளர்ப்பதற்கல்ல." ("The whole intent of Perl 5's module system was to encourage the growth of Perl culture rather than the Perl core.") Usenet post, May 10th 1997, with ID 199705101952.MAA00756@wall.org.
  5. லாரி வால். "perl.com: The Culture of Perl". பார்த்த நாள் 2010-05-10. "Linguistic Beliefs: This brings me to my linguistic beliefs, and you'll probably recognize a lot of these in the design of Perl, and more particularly in the design of Perl Culture."
  6. http://enkirukkal.blogspot.com/2006/09/perl-and-postmodernism.html

வெளி இணைப்புகள்[தொகு]

"http://ta.wikipedia.org/w/index.php?title=பெர்ள்&oldid=1426996" இருந்து மீள்விக்கப்பட்டது