WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Perl · Advanced · question 55 of 100

How do you create and use custom attributes in Perl’s object-oriented programming?

📕 Buy this interview preparation book: 100 Perl questions & answers — PDF + EPUB for $5

Custom attributes can be useful for adding additional data fields or properties to a Perl object that are not explicitly defined in the object class. Here’s how you can create and use custom attributes in Perl’s object-oriented programming:

1. Define the attribute in the object class using the Class::Accessor module. For example, if you have a class called "Person" and you want to add a custom attribute called "age_group", you can define it like this:

use Class::Accessor;

package Person;
use base qw/Class::Accessor/;

__PACKAGE__->mk_accessors(qw/age_group/);

2. In the constructor method for the class, you can set the value of the custom attribute using the attribute accessor method generated by Class::Accessor. For example:

sub new {
  my $class = shift;
  my $self = {
    name => shift,
    age => shift,
    age_group => '',
  };
  bless $self, $class;
  $self->set_age_group(); # set the age_group attribute based on age
  return $self;
}

sub set_age_group {
  my $self = shift;
  my $age = $self->age;
  if ($age < 18) {
    $self->age_group('Under 18');
  } elsif ($age < 30) {
    $self->age_group('18-29');
  } elsif ($age < 40) {
    $self->age_group('30-39');
  } else {
    $self->age_group('40+');
  }
}

3. To access the custom attribute in other methods, you can use the accessor method generated by Class::Accessor. For example:

sub print_person_info {
  my $self = shift;
  print "Name: " . $self->name . "n";
  print "Age: " . $self->age . "n";
  print "Age group: " . $self->age_group . "n";
}

4. To use the custom attribute outside of the object, you can call the accessor method on the object. For example:

my $person = Person->new('John', 25);
print $person->age_group; # prints "18-29"

By using Class::Accessor and defining custom attributes, you can add additional data fields or properties to your Perl objects and access them easily in your methods.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Perl interview — then scores it.
📞 Practice Perl — free 15 min
📕 Buy this interview preparation book: 100 Perl questions & answers — PDF + EPUB for $5

All 100 Perl questions · All topics