Ik ben al een tijdje wat aan het experimenteren met Linux en ik wil ook wat script vaardigheden op gaan doen. Mijn vraag is dus welke scripttaal ik hiervoor het beste kan gaan leren. Het liefst een scripttaal waarin voor mij ook nog iets interessant te leren valt.
Verwijderd
Perl is dan een hele geschikte keus, misschien Python maar die taal ken ik verder niet echt. Perl kent veel mogelijkheden (webscripting en shellscripting, maar je kunt ook GUIs maken met Tk) en zit mooi in elkaar, met name de regex support. Verder zijn er een grote hoeveelheid modules beschikbaar voor de meest uiteenlopende dingen (http://www.webgoeroe.net/item/695). En het is eigenlijk standaard op elke linux bak geïnstalleerd.
HTH
HTH
edit:
Mocht je uiteindelijk voor Perl kiezen dan raad ik je aan "Programming Perl" van Larry Wall te kopen, de klasieker op Perl gebied (bekend als The Camel) en is erg leuk om te lezen. Uitgegeven door O'Reilly. Eventueel is Learning Perl ook wel geschikt.
Mocht je uiteindelijk voor Perl kiezen dan raad ik je aan "Programming Perl" van Larry Wall te kopen, de klasieker op Perl gebied (bekend als The Camel) en is erg leuk om te lezen. Uitgegeven door O'Reilly. Eventueel is Learning Perl ook wel geschikt.
Aha.. ik denk dat we een goeie kandidaat hebben gevonden. Het is inderdaad erg praktisch dat Perl op iedere bak staat, en verder heb ik er al veel over gehoord.Verwijderd schreef op 29 september 2002 @ 20:06:
Perl is dan een hele geschikte keus, misschien Python maar die taal ken ik verder niet echt. Perl kent veel mogelijkheden (webscripting en shellscripting, maar je kunt ook GUIs maken met Tk) en zit mooi in elkaar, met name de regex suppor
Ik heb nog niet echt iets concreets in gedachten, maar ik wil in ieder geval 1 scripttaal onder linux verkennen. En het liefst een waar ik ook nog wat nieuwe ideeen uit op kan doen.XTerm89D schreef op 29 september 2002 @ 20:05:
Tja, wat wil je gaan doen ? Er is *zoveel* keus...
Bash
Tcsh
Perl
Python
TCL/Tk
etc...
Verwijderd
Arien, Martijn (tomato) en ik zijn er alledrie gek opAlarmnummer schreef op 29 september 2002 @ 20:10:
[...]
Aha.. ik denk dat we een goeie kandidaat hebben gevonden. Het is inderdaad erg praktisch dat Perl op iedere bak staat, en verder heb ik er al veel over gehoord.
Ik denk perl, flexibel snel en makkelijk
. Oja, en erg leuk!
Verwijderd
De PHP syntax is grotendeels van Perl afgeleid (PHP is begonnen als een set Perl scripts) maar neigt iets meer naar C, de OO implementatie van PHP is wat C++/Java achtiger, bij Perl werkt dit echt nogal anders dan je tot nu toe gewend bent. Verder is de PHP bak met functies met name gericht op het web gebruik, bij Perl is er de CGI module voor web specifieke dingen. De Perl syntax is rijker dan die van PHP, waardoor je heel ingewikkeld uitziende maar ook compacte code kunt schrijvenAlarmnummer schreef op 29 september 2002 @ 20:14:
En hoe verhoud Perl zich tot PHP?
Tot zover deze Perl propaganda
edit:
Als je shellscripting wilt doen is PHP sowieso geen geschikte keus, het KAN wel, maar lekker werkt het niet.
Als je shellscripting wilt doen is PHP sowieso geen geschikte keus, het KAN wel, maar lekker werkt het niet.
Ok thanx, dan ga ik mij eens in Perl verdiepen
Let er wel op dat in Perl er echt meerdere wegen zijn die naar Rome leiden.
Perl is een heleboel syntaxen verzameld. En als je serieus bent wat betreft Perl, dan kun je het beste Programming Perl van O'Reilly kopen. Van de maker zelf en met humor geschreven.
Perl is een heleboel syntaxen verzameld. En als je serieus bent wat betreft Perl, dan kun je het beste Programming Perl van O'Reilly kopen. Van de maker zelf en met humor geschreven.
Perl schijnt ook de enige taal te zijn die er na encryptie hetzelfde eruit ziet als ervoor. 
Bash is ook handig, dat kan je vergelijken met Windows batch, maar dan wel een stuk uitgebreider met een aantal handige language constructs. Het is vrij makkelijk te leren. De functionaliteit zit in de console programma's en die hebben allemaal wel een man-entry.
Bash is ook handig, dat kan je vergelijken met Windows batch, maar dan wel een stuk uitgebreider met een aantal handige language constructs. Het is vrij makkelijk te leren. De functionaliteit zit in de console programma's en die hebben allemaal wel een man-entry.
Verwijderd
Ik was Perl fan, tot ik Ruby tegenkwam. Ruby is 'a better Perl than Perl itself'. Perl's OO faciliteiten zijn zeer matig, Ruby daarentegen is fundamenteel OO opgezet en biedt uitstekende OO faciliteiten. Ruby's standard library is in tegenstelling tot die van Perl dan ook geheel OO.
Ruby bevat verder kilo's syntactische suiker en elegante features om leuke expressies te bouwen. Waarschijnlijk zelfs meer dan Perl (en daarnaast zijn ze in Ruby veel minder rommelig ingebouwd). Ikzelf ben niet van plan om ooit nog Perl te programmeren.
Ruby's enige nadeel is dat ze nog zo jong is. Er is weinig documentatie beschikbaar, en er zijn (in vergelijking tot Perl) ook nog maar weinig bestaande libraries voor beschikbaar (maar daar wordt uiteraard hard aan gewerkt, zie de links hieronder). Ruby wordt in Japan (waar de maker woont) overigens al wel meer gebruikt dan Python.
Linkjes:
- ruby-lang.org - Ruby homepage.
- Programming Ruby - Het Ruby boek (waar ook ik met veel plezier Ruby uit geleerd heb).
- Ruby Application Archive - Handig uitgebreid lijstje beschikbare Ruby libraries.
Have fun
.
Ruby bevat verder kilo's syntactische suiker en elegante features om leuke expressies te bouwen. Waarschijnlijk zelfs meer dan Perl (en daarnaast zijn ze in Ruby veel minder rommelig ingebouwd). Ikzelf ben niet van plan om ooit nog Perl te programmeren.
Ruby's enige nadeel is dat ze nog zo jong is. Er is weinig documentatie beschikbaar, en er zijn (in vergelijking tot Perl) ook nog maar weinig bestaande libraries voor beschikbaar (maar daar wordt uiteraard hard aan gewerkt, zie de links hieronder). Ruby wordt in Japan (waar de maker woont) overigens al wel meer gebruikt dan Python.
Linkjes:
- ruby-lang.org - Ruby homepage.
- Programming Ruby - Het Ruby boek (waar ook ik met veel plezier Ruby uit geleerd heb).
- Ruby Application Archive - Handig uitgebreid lijstje beschikbare Ruby libraries.
Have fun
Verwijderd
Inderdaad, Perl wordt om dezelfde reden (onleesbaarheid) daarnaast ook wel een 'write-only' taal genoemdEricston schreef op 29 september 2002 @ 20:53:
Perl schijnt ook de enige taal te zijn die er na encryptie hetzelfde eruit ziet als ervoor.
Ik vermoed eerlijk gezegd, Alarmnummer kennende, dat hij blijer zal worden van Python dan van Perl
.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik denk trouwens dat dit wel een aardig overzicht is voor Alarmnummer
.
Map Function
Een paar flames:
Map Function
Een paar flames:
Python LanguagePerl is executable line noise
Python is executable pseudocode
Python is to Perl as Java is to C++.
Zelf gebruik ik overigens 'gewoon' bash scripts als ik een scriptje moet schrijven om een meer atomaire applicatie in te pakken.Neither Ruby nor Python are functional languages. But both have features that are reminiscent of a functional style.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Als het je gaat om hoe de taal op zich in elkaar zit dan zou ik eens naar Python of Ruby kijken, daar heb ik veel goeds over gehoord. Zelf gebruik ik naar volle tevredenheid Perl, een heerlijke taal door zijn flexibiliteit. Je bent veel minder aan een vaste 'stijl' gebonden dan bij talen als Java. Zo kun je in Perl een if-constructie heel leesbaar schrijven:
Natuurlijk is de 'gewone' manier met accolades ook mogelijk: "TIMTOWTDI" is het Perl-motto
. Bij het gebruik van de CGI-module komen ook weer leuke constructies bovendrijven:
Een veel compactere manier om tabellen uit te schrijven ben ik eerlijk gezegd nog niet tegengekomen. Het is wel mogelijk dat je scripts nogal snel onoverzichtelijk of onleesbaar worden, maar dat is iets wat je helemaal zelf in de hand hebt. Je wordt niet gestuurd om het leesbaar te houden.
code:
1
| print "$a is groter dan $b" if ($a > $b); |
Natuurlijk is de 'gewone' manier met accolades ook mogelijk: "TIMTOWTDI" is het Perl-motto
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| while (my $ref = $query->fetchrow_hashref())
{
print Tr(
td([
$ref->{voornaam},
$ref->{achternaam},
$ref->{jaar},
$ref->{afdeling},
"$ref->{adres}" . " " . "$ref->{postcode}" . (" ($ref->{woonplaats})" || ""),
$ref->{mail}
])
);
} |
Een veel compactere manier om tabellen uit te schrijven ben ik eerlijk gezegd nog niet tegengekomen. Het is wel mogelijk dat je scripts nogal snel onoverzichtelijk of onleesbaar worden, maar dat is iets wat je helemaal zelf in de hand hebt. Je wordt niet gestuurd om het leesbaar te houden.
Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.
He, grappig topic 
Ik ben de laatste tijd zelf weer wat meer onder Unix (Solaris en Linux) bezig, deels door mijn studie. Ik zou eigenlijk iedere Unix gebruiker een basiskennis Perl aan willen raden. Wanneer je er een beetje mee uit de voeten kunt is het werkelijk als een Swiss Army Knife (waar je dus van alles mee kunt)
Maar zoals mbravenboer al opmerkte, vermoed ik ook dat Alarmnummer meer gecharmeerd zal zijn van Python of misschien in mindere mate van Ruby. Ligt er natuurlijk ook aan wat hij precies zoekt.
Het is onder Unix vooral handig om te weten wat er allemaal is en wat je daarmee kunt. Een beetje kennis van Perl past daarbij wel erg goed. Maar eigenlijk is het nog veel fijner om je shell goed te kennen, waarschijnlijk Bash.
Ik ben de laatste tijd zelf weer wat meer onder Unix (Solaris en Linux) bezig, deels door mijn studie. Ik zou eigenlijk iedere Unix gebruiker een basiskennis Perl aan willen raden. Wanneer je er een beetje mee uit de voeten kunt is het werkelijk als een Swiss Army Knife (waar je dus van alles mee kunt)
Maar zoals mbravenboer al opmerkte, vermoed ik ook dat Alarmnummer meer gecharmeerd zal zijn van Python of misschien in mindere mate van Ruby. Ligt er natuurlijk ook aan wat hij precies zoekt.
Het is onder Unix vooral handig om te weten wat er allemaal is en wat je daarmee kunt. Een beetje kennis van Perl past daarbij wel erg goed. Maar eigenlijk is het nog veel fijner om je shell goed te kennen, waarschijnlijk Bash.
Da's ook een manier om TIMTOWTDI te zeggenThe - DDD schreef op 29 september 2002 @ 20:51:
Let er wel op dat in Perl er echt meerdere wegen zijn die naar Rome leiden.
Ik kan niet nalaten te zeggen dat je met Perl wel hele elegante leesbare code kan schijven.
Alleen de meeste vieze honden Perl programmeurs doen dat niet. Als je het goed wilt leren, dan begint elk Perl programma met dit:
T staat voor Tainting: moeilijk uit te leggen.
w is voor warnings, geeft melding bij twijfelachtige constructies
strict is voor nette code (alles declareren enzo (my $variable = 'blaat';))
Alleen de meeste vieze honden Perl programmeurs doen dat niet. Als je het goed wilt leren, dan begint elk Perl programma met dit:
code:
1
2
3
| #!/usr/bin/perl -Tw use strict; |
T staat voor Tainting: moeilijk uit te leggen.
w is voor warnings, geeft melding bij twijfelachtige constructies
strict is voor nette code (alles declareren enzo (my $variable = 'blaat';))
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Deze doet het ook niet slecht toch?Een veel compactere manier om tabellen uit te schrijven ben ik eerlijk gezegd nog niet tegengekomen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| create-row:
Person(voornaam, achternaam, jaar, afdeling, adres, postcode, woonplaats, mail)
->
[xml:element[
<tr>
<td> ~cd:voornaam </td>
<td> ~cd:achternaam </td>
<td> ~cd:jaar </td>
<td> ~cd:afdeling </td>
<td> ~cd:adres ~cd:postcode ~cd:woonplaats </td>
<td>
<a href=~mailurl> ~cd:mail </a>
</td>
</tr>
]]
where <conc-strings> ("mailto:", mail) => mailurl |
Het is iets verboser, maar het genereert ook gewone XML en maakt geen gebruik van libraries om HTML te genereren. Het doel van deze methode is met name om XML op te kunnen bouwen in XML syntax.
Hier is de rest van een kleine demo die ik net ff heb gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| main =
iowrap(create-document)
_
create-document:
persons
->
[xml:document[
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XHTML generation with Stratego</title>
</head>
_
<body>
<h1>Werknemers</h1>
_
<table>
<thead>
<tr>voornaam</tr>
<tr>achternaam</tr>
<tr>geboortejaar</tr>
<tr>afdeling</tr>
<tr>adres</tr>
<tr>e-mail</tr>
</thead>
<tbody>
~*table-rows
</tbody>
</table>
</body>
</html>
]]
where <map(create-row)> persons => table-rows |
(_ zijn weer voor de newlines die wegvallen als ik post vanuit Mozilla
Dit kan zo overigens ook in Java en andere talen, maar ik heb het nog niet voor andere talen geimplementeerd.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Konqueror die heeft er ook last van.(_ zijn weer voor de newlines die wegvallen als ik post vanuit Mozilla ).
Verwijderd schreef op 29 september 2002 @ 20:19:
edit:
Als je shellscripting wilt doen is PHP sowieso geen geschikte keus, het KAN wel, maar lekker werkt het niet.
Het kan prima hoor
En slecht vind ik het zeker niet werken, vooral als je al aardig wat php kennis hebt is het maken van een php-shell script natuurlijk een eitje.
Voor het beheren van je systeem lijkt het me iig erg nuttig dat je de basis kennis voor perl en bash hebt.
Al is het alleen maar dat de meeste shellscripts in een van die twee geschreven zijn en dat je er daardoor alleen al vrij veel aan hebt.
De syntax van bash, perl en php lijken erg veel op elkaar dus als je er een kent kan je ze alle drie lezen
Alleen is perl wel de meest complexe van de drie en het vaakst echt onduidelijke stukken voor mij bevatte.
Verwijderd
Ik vind dat Alarmnummer maar eens uit die oh-zo-mooie OO wereld moet stappen en eens een hele andere soort taal moet lerentomato schreef op 29 september 2002 @ 22:06:
Maar zoals mbravenboer al opmerkte, vermoed ik ook dat Alarmnummer meer gecharmeerd zal zijn van Python of misschien in mindere mate van Ruby. Ligt er natuurlijk ook aan wat hij precies zoekt.
Verwijderd
The - DDD schreef op 29 september 2002 @ 20:51:
En als je serieus bent wat betreft Perl, dan kun je het beste Programming Perl van O'Reilly kopen. Van de maker zelf en met humor geschreven.
Verwijderd schreef op 29 september 2002 @ 20:06:
edit:
Mocht je uiteindelijk voor Perl kiezen dan raad ik je aan "Programming Perl" van Larry Wall te kopen, de klasieker op Perl gebied (bekend als The Camel) en is erg leuk om te lezen. Uitgegeven door O'Reilly. Eventueel is Learning Perl ook wel geschikt.
http://www.oreilly.com/catalog/perlsysadm/
Heb het boek zelf nog nooit ingekeken, dus kan er verder niet veel over zeggen.
Heb het boek zelf nog nooit ingekeken, dus kan er verder niet veel over zeggen.
Verwijderd
Overigens draait Perl ook prima onder Windows (zie http://www.activestate.com/Products/ActivePerl/), is er zelfs een .NET uitbreiding voor Perl beschikbaar, bestaat er veel ondersteuning voor (tools, standaard software, userbase, platformen).
Met Perl kun je bijzonder krachtige expressies maken, wat je nogal wat typewerk kan schelen, maar wat de code wel bijzonder onleesbaar maakt. Dit is zowel een gehate als geliefde eigenschap van deze taal, en er is zelfs een wedstrijd voor: The Annual Obfuscated Perl Contest (http://www.sysadminmag.com/tpj/obfuscated/)
De liefhebbers van deze taal zijn bijna religieus in hun waardering en verspreiden het ook vaak alsof het een religie is. Veel van deze evangelie is te vinden op het web, en kan je behoorlijk helpen als je vast komt te zitten. Zie bijv. http://perl.plover.com/ voor een voorbeeld van zo'n site.
HTH
Met Perl kun je bijzonder krachtige expressies maken, wat je nogal wat typewerk kan schelen, maar wat de code wel bijzonder onleesbaar maakt. Dit is zowel een gehate als geliefde eigenschap van deze taal, en er is zelfs een wedstrijd voor: The Annual Obfuscated Perl Contest (http://www.sysadminmag.com/tpj/obfuscated/)
De liefhebbers van deze taal zijn bijna religieus in hun waardering en verspreiden het ook vaak alsof het een religie is. Veel van deze evangelie is te vinden op het web, en kan je behoorlijk helpen als je vast komt te zitten. Zie bijv. http://perl.plover.com/ voor een voorbeeld van zo'n site.
HTH
Meschien ook handig om eens 1 dagje te kijken naar bash / sh
om de simple reden dan bijna heel *nix/linux daarmee aanelkaar hangt.
Waardoor het erg makkelijk is om te kunnen lezen en wijzigen..
just my 2 cent
edit: Python is verder ook leuk omdat het met JPython in je java code kan laten meedraaien
om de simple reden dan bijna heel *nix/linux daarmee aanelkaar hangt.
Waardoor het erg makkelijk is om te kunnen lezen en wijzigen..
just my 2 cent
edit: Python is verder ook leuk omdat het met JPython in je java code kan laten meedraaien
Atari Terminator AI - LegoBlockX3 = ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T008ᖟ
Verwijderd
Ik denk ook dat Alarmnummer beter bediend is met Python dan met Perl. Ik persoonlijk programmeer graag in Python, terwijl ik programmeren in Perl zoveel mogelijk vermijd. Dat vermijden heeft twee (gerelateerde) redenen:
1) ik kan mijn eigen code na een paar maanden niet meer ontcijferen; comments helpen ook niet veel
2) ik ontwikkel veel sneller in Python
En de relatie tussen die twee is natuurlijk de (onleesbare) syntax van Perl, ik denk dat iedereen die vaker in Perl programmeert wel eens een paar uurtjes op een construct heeft zitten turen waar later een bizar karakter verkeerd blijkt te staan.
1) ik kan mijn eigen code na een paar maanden niet meer ontcijferen; comments helpen ook niet veel
2) ik ontwikkel veel sneller in Python
En de relatie tussen die twee is natuurlijk de (onleesbare) syntax van Perl, ik denk dat iedereen die vaker in Perl programmeert wel eens een paar uurtjes op een construct heeft zitten turen waar later een bizar karakter verkeerd blijkt te staan.
Bij perl vind ik vooral het overdadig gebruik van die meta-variabelen ($_ enzo) vreselijk slecht leesbaar.
Je opent een file en ineens blijkt een bepaalde variabele de inhoud van die files te bevatten, of een filepointer ernaar te zijn etc.
Of je gaat dan met een while loop door de content van die file heen zonder expliciet op te geven dat je met die file bezig bent etc en die vage $_-achtige vars hebben dan de inhoud ervan.
Imho maken dat soort zaken het er niet duidelijker op. Zeker als beginner niet natuurlijk
Dat is ook een van de redenen dat, sinds ik ontdekt heb dat je php ook prima commandline kan gebruiken, ik nauwelijks nog wat met perl doe
En als ik het gebruik gebruik ik het op een "java" of "php" achtige manier (dus al die meta-vars niet gebruiken, gewoon echte vars assignen etc).
Je opent een file en ineens blijkt een bepaalde variabele de inhoud van die files te bevatten, of een filepointer ernaar te zijn etc.
Of je gaat dan met een while loop door de content van die file heen zonder expliciet op te geven dat je met die file bezig bent etc en die vage $_-achtige vars hebben dan de inhoud ervan.
Imho maken dat soort zaken het er niet duidelijker op. Zeker als beginner niet natuurlijk
Dat is ook een van de redenen dat, sinds ik ontdekt heb dat je php ook prima commandline kan gebruiken, ik nauwelijks nog wat met perl doe
En als ik het gebruik gebruik ik het op een "java" of "php" achtige manier (dus al die meta-vars niet gebruiken, gewoon echte vars assignen etc).
Verwijderd
Dat is vooral het geval als je het maar heel zelden gebruikt. Larry Wall is een taalkundige en Perl lijkt als je het goed leest op de gewone Engelse taal. $_ is bijvoorbeeld het onderwerp waar je over praat.ACM schreef op 30 september 2002 @ 12:37:
Bij perl vind ik vooral het overdadig gebruik van die meta-variabelen ($_ enzo) vreselijk slecht leesbaar.
code:
1
2
3
4
| open(FILE, "bla.txt") || die("Could not open file bla.txt: $!");
while(<FILE>) {
print $_;
} |
Ziet er wellicht cryptisch uit, maar er zit een gedachte achter
Als dat al zo is hoef je dat helemaal niet te weten.Je opent een file en ineens blijkt een bepaalde variabele de inhoud van die files te bevatten, of een filepointer ernaar te zijn etc.
Of je gaat dan met een while loop door de content van die file heen zonder expliciet op te geven dat je met die file bezig bent etc en die vage $_-achtige vars hebben dan de inhoud ervan.
Daarom moet je als beginner ook niet zulke code gaan schrijven. Het het is perfect mogelijk PHP-achtige code te schrijven die iedereen begrijpt, maar na mate je meer Perl gebruikt ga je gebruik maken van de meer krachtige dingen. Dat hangt helemaal van jezelf af.Imho maken dat soort zaken het er niet duidelijker op. Zeker als beginner niet natuurlijk
Verwijderd
Ik zou gewoon eerst eens bash leren. Wat is daar mis mee? Goed bash leren, tot je beseft dat je er niet alles mee kan.
Wanneer je dan dingen gaat missen en get gaat frusteren ben je klaar voor perl enzo.
Bash is goed om te leren omdat het niet teveel ingewikkelts kan. Leer je eerst goed de basics.
Wanneer je dan dingen gaat missen en get gaat frusteren ben je klaar voor perl enzo.
Bash is goed om te leren omdat het niet teveel ingewikkelts kan. Leer je eerst goed de basics.
Verwijderd
Ik denk dat Perl je vooral blind maakt voor de gebreken van Perl als je het wel gebruikt. Jouw code is een prachtig voorbeeld van de hersenbeschadigingen van perl:Verwijderd schreef op 30 september 2002 @ 17:51:
Dat is vooral het geval als je het maar heel zelden gebruikt.
code:
1
2
3
4
| open(FILE, "bla.txt") || die("Could not open file bla.txt: $!");
while(<FILE>) {
print $_;
} |
Als je van deze code een sub wilt maken heb je al 2 side-effects (voor zover ik kan beoordelen): zowel FILE als $_ zijn globaal, en blijven globaal als je ze in een sub zet. Vooral bij FILE is dat lastig, omdat je hem niet ff local kunt maken met my FILE, want een file is geen echt object in Perl (met $_ kan dat trouwens ook niet). Toegegeven, je kunt er iets aan doen met globs, maar zeg nu zelf, maken twee soorten variabelen/objecten een taal eenvoudig of makkelijk hanteerbaar?
Perl barst werkelijk van dit soort side-effects als je niet waanzinnig goed uitkijkt. Daarom vind ik Perl persoonlijk niet geschikt voor grotere projecten, naast de onleesbaarheid van de code, die ook massa's problemen oplevert als er meer dan een programmeur aan het project werkt.
Pagina: 1