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

பெர்ள்
நிரலாக்கக் கருத்தோட்டம்:Multi-paradigm
தோன்றிய ஆண்டு:1987
வடிவமைப்பாளர்:Larry Wall
அண்மை வெளியீட்டுப் பதிப்பு:5.30.0
அண்மை வெளியீட்டு நாள்:மே 22 2019 (2019-05-22), 2011 நாட்களுக்கு முன்னதாக
இயல்பு முறை:Dynamic
பிறமொழித்தாக்கங்கள்:AWK, பேசிக் (நிரல் மொழி), BASIC-PLUS, சி, சி++, லிஸ்ப், பாசுக்கல், sed, Unix shell
இம்மொழித்தாக்கங்கள்:பைத்தான், பிஎச்பி, ரூபி, ECMAScript, Dao, Windows PowerShell
இயக்குதளம்:Cross-platform
அனுமதி:குனூ பொதுமக்கள் உரிமம், Artistic License
இணையதளம்:http://www.perl.org/

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

தொகு

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

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

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

தொகுப்பி

தொகு

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

மொழி அமைப்பு

தொகு

தரவினங்கள்

தொகு

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

  • திசையிலிகள் (scalars)
  • அணி (array)
  • 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)
#!/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  ) blockelse block
unless ( expr ) block
unless ( expr ) block else block
unless ( expr ) block elsif ( expr  ) blockelse 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)". Archived from the original on 2013-01-11. பார்க்கப்பட்ட நாள் 2007-09-13.
  2. Wall, Larry, Tom Christiansen and Jon Orwant (2000). Programming Perl, Third Edition. O'Reilly. பன்னாட்டுத் தரப்புத்தக எண் 0-596-00027-8. {{cite book}}: Unknown parameter |month= ignored (|date= suggested) (help)CS1 maint: multiple names: authors list (link)
  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.

வெளி இணைப்புகள்

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