can't get perl Class::Struct to work


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting can't get perl Class::Struct to work
# 1  
Old 05-03-2008
can't get perl Class::Struct to work

This is my code:

Code:
#!/usr/bin/perl -w

use strict;
use Class::Struct;

struct App =>
{
        name => '$',
};

sub App::name
{
        my $self = shift;
        if( @_ )
        {
                $self->{'name'} = shift;
        }
        return $self->{'name'};
}

my $x = App->new( name => "John" );

printf("Hello %s\n", $x->name);

When I run the script I get:

Quote:
function 'name' already defined, overrides struct accessor method at ./learning.pl line 6
Use of uninitialized value in printf at ./learning.pl line 23.
Hello
Why won't it save the name (John)???
# 2  
Old 05-03-2008
If you comment out the entire sub App::name block, it works.
# 3  
Old 05-04-2008
I know, but I was trying to override the accessor method.

Thanks
_Nacho
# 4  
Old 05-04-2008
Well, the manual has some hints.

Quote:
Originally Posted by IMTheNachoMan
Code:
#!/usr/bin/perl -w

use strict;
use Class::Struct;

struct App =>
{
        name => '$',
};

sub App::name
{
        my $self = shift;
        if( @_ )
        {
                $self->{'App::name'} = shift;
        }
        return $self->{'App::name'};
}

my $x = App->new( name => "John" );

printf("Hello %s\n", $x->name);

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C++ : Base class member function not accessible from derived class

Hello All, I am a learner in C++. I was testing my inheritance knowledge with following piece of code. #include <iostream> using namespace std; class base { public : void display() { cout << "In base display()" << endl; } void display(int k) {... (2 Replies)
Discussion started by: anand.shah
2 Replies

2. Programming

Size of Derived class, upon virtual base class inheritance

I have the two class definition as follows. class A { public: int a; }; class B : virtual public A{ }; The size of class A is shown as 4, and size of class B is shown as 16. Why is this effect ?. (2 Replies)
Discussion started by: techmonk
2 Replies

3. UNIX for Advanced & Expert Users

Get pointer for existing device class (struct class) in Linux kernel module

Hi all! I am trying to register a device in an existing device class, but I am having trouble getting the pointer to an existing class. I can create a class in a module, get the pointer to it and then use it to register the device with: *cl = class_create(THIS_MODULE, className);... (0 Replies)
Discussion started by: hdaniel@ualg.pt
0 Replies

4. Programming

static use for class inside the same class c++

Hi, I believe the next code is wrong: class Egg { Egg e; int i; Egg(int ii=0) : i(ii) {} }; because you would end up with an endless definition (memory allocation) of Egg objects, thus int i. Ok, so God Eckel proposes for a singleton: class Egg { static Egg e; int... (5 Replies)
Discussion started by: xavipoes
5 Replies

5. Programming

Storing C++-struct in file - problem when adding new item in struct

Hi, I have received an application that stores some properties in a file. The existing struct looks like this: struct TData { UINT uSizeIncludingStrings; // copy of Telnet data struct UINT uSize; // basic properties: TCHAR szHost; //defined in Sshconfig UINT iPortNr; TCHAR... (2 Replies)
Discussion started by: Powerponken
2 Replies

6. UNIX for Dummies Questions & Answers

Perl on-line class

Hi, Time for me to take a formal class/course on Perl. I was wondering if someone here can recommend an on-line class. My institution will cover the expenses, and therefore, I am not worry about the cost. I am lookin for a beginner course with possibilities to take intermediate and advance... (2 Replies)
Discussion started by: Xterra
2 Replies

7. Shell Programming and Scripting

Perl class help

cat a.pl #!/usr/bin/perl package Myperlclass; sub mysub{ my $class; $class=shift; my $self{}; bless $self,$class; return $self; } sub add{ my $a,$b,$res; $a=$_; $b=$_; $res=$a+$b; print "res: $res\n"; } (0 Replies)
Discussion started by: cola
0 Replies

8. Programming

C++ class definition with a member of the same class

Hi, i have a question about C++. Is it possible to declare a class with a member ot the same class? For example, a linked list or i want to convert this C code to C++ class (Elemento) typedef struct elemento { char name; char value; List<struct elemento> ltElementos; ... (7 Replies)
Discussion started by: pogdorica
7 Replies

9. UNIX for Dummies Questions & Answers

How to access a struct within a struct?

Can someone tell me how to do this? Just a thought that entered my mind when learning about structs. First thought was: struct one { struct two; } struct two { three; } one->two->three would this be how you would access "three"? (1 Reply)
Discussion started by: unbelievable21
1 Replies

10. UNIX for Dummies Questions & Answers

car class (not school class)

im just trying to have some fun and kill some time writing a c++ program that has a person type in a car make and model then gives them a year and a price. or something like that. i always have problems getting it goin but once the ball is rolling im usually pretty good. anyone wanna help me out? ... (1 Reply)
Discussion started by: rickym2626
1 Replies
Login or Register to Ask a Question