Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Lokalizovanje filehandlea u objektu

[es] :: Perl :: Lokalizovanje filehandlea u objektu

[ Pregleda: 3287 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

misa vranje
Milos Stanojevic
Vranje

Član broj: 15298
Poruke: 127
62.108.97.*



Profil

icon Lokalizovanje filehandlea u objektu29.01.2005. u 19:07 - pre 213 meseci
Da li je File Handle moze da se lokalizuje na odredjeni paket(objekat)?

npr.

#!/usr/bin/perl -w
use strict;
package files;
sub new {
my $object={@_};
return bless $object;
}
sub otvori{
my $self=shift;
open(FILE,$self->{'file'}) or die 'Nemogu da otvorim fajl $self->{'self'}';
}
sub upisi{
my ($self,$upisi)[email protected]_;
print FILE $upisi;
}
sub zatvori{
my $self=shift;
close FILE;
}
package main;
my $prvifajl=new files;
my $drugifajl=new files;
$prvifajl->otvori('./bezveze.pas');
$drugifajl->otvori('./glupo.c');
$prvifajl->upisi('Neki text');
$drugifajl->upisi('Neki drugi text');
$prvifajl->zatvori;
$drugifajl->zatvori;


Pretpostavljam(nisam sada u mogucnosti da isprobam) da ce 'Neki text' i 'Neki drugi text' biti upisani u
./glupo.c umesto da samo 'Neki drugi text' bude upisano u glupo.c a 'Neki text' u ./bezveze.pas.
Nadam se da shvatate sta hocu da kazem.

Znaci zelim da pristupam nekom File Handlu na primer $self->FILE.Mozda treba nekako da file handle bude u $object hashu?Kako to da uradim?
 
Odgovor na temu

mpapec

Član broj: 9198
Poruke: 45
*.globalnet.hr.



Profil

icon Re: Lokalizovanje filehandlea u objektu30.01.2005. u 13:03 - pre 213 meseci
Nemoj koristiti globtype jer je to vec zastarjeli nacin, umjesto toga
open my $fh, $self->{filename} or die "$! $self->{filename}";

i onda uobicajeno pospremis taj filehandle, $self->{fh} = $fh

Inace, ovaj konstruktor sub new nema puno smisla jer u $object hashref pobacas sve prosljedjenje parametre. Ako ti je vec stalo do tih parametara onda barem treba izbaciti prvog koji sadrzi ime same klase (my $class = shift) i po mogucnosti vidjeti da ti netko ne salje neke desete parametre u tvoju klasu,

package files;
sub new {
my $class = shift;
my %arg = @_;
my @class_fields = ('filename');
my $object= bless {}, $class;

#odbaci sve osim @class_fields
@$object{@class_fields} = @arg{@class_fields};
return $object;
}
package main;
my $prvifajl = files->new(filename => './bezveze.pas');
#zaviri u strukturu objekta
use Data::Dumper; print Dumper $prvifajl;

 
Odgovor na temu

misa vranje
Milos Stanojevic
Vranje

Član broj: 15298
Poruke: 127
62.108.97.*



Profil

icon Re: Lokalizovanje filehandlea u objektu02.02.2005. u 01:20 - pre 213 meseci
Ali kako da nateram promenljivu $fh da se ponasa kao typeglob kada treba da je po
vezem sa Tk::Text u Perl/Tk?
primer:
tie(FH,'Tk::Text',$textfield) #gde je FH typeglob a $textfield textualno polje
iznad radi,ispod neradi:
tie($fh,'Tk::Text',$textfield)

Znam da povezivanje promenljive sa objektom radi preko funkcije TieScalar a type
globa preko neke druge.Znaci kako da se promenljiva ponasa u potpunosti kao type glob?
 
Odgovor na temu

mpapec

Član broj: 9198
Poruke: 45
*.globalnet.hr.



Profil

icon Re: Lokalizovanje filehandlea u objektu02.02.2005. u 17:52 - pre 213 meseci
Ne znam bas Tk ali ovo bi trebalo funkcionirati kao globtype
tie(*$fh,'Tk::Text',$textfield)

 
Odgovor na temu

[es] :: Perl :: Lokalizovanje filehandlea u objektu

[ Pregleda: 3287 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.