in reply to Re^2: Simple OO question...
in thread Simple OO question...

passing the object handle from sub to sub)
&display_data($Tobj);

alternatively call methods on the object

$Tobj->display_data()

For example

#!/usr/bin/perl use strict; use lib './my_app'; use my_app::db; use my_app::page; my $dbh = my_app::db->connect(); my $page = my_app::page->new(); # create a page object for my $uid (1..3){ $page->init($dbh,$uid); # query database $page->display; }
package my_app::page; # file ./my_app/page.pm use strict; my @field = qw(uid name text); sub new { my $class = shift; return bless {},$class } sub init { my ($self,$dbh,$uid) = @_; my $fields = join ',',@field; my $sql = "SELECT $fields FROM pages WHERE uid =?"; my $rec = $dbh->selectrow_arrayref($sql,undef,$uid); $self->{$field[$_]} = $rec->[$_] for 0..$#field; }; sub display { my $self = shift; printf " uid : %d name : %s text : %s\n", map { $self->{$_} } @field; }; 1;
package my_app::db; # file ./my_app/db.pm use strict; use DBI; sub connect { my $server = 'localhost'; my $database = "test"; my $user = "****"; my $pw = "****"; my $dsn = "dbi:mysql:$database:$server:3306"; my $dbh = DBI->connect($dsn, $user, $pw, { RaiseError => 1, AutoCommit => 1 } ); return $dbh; } 1;
poj