Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Chemistry::Obj(3)     User Contributed Perl Documentation    Chemistry::Obj(3)

NAME
       Chemistry::Obj -	Abstract chemistry object

SYNOPSIS
	   package MyObj;
	   use base "Chemistry::Obj";
	   Chemistry::Obj::accessor('color', 'flavor');

	   package main;
	   my $obj = MyObj->new(name =>	'bob', color =>	'red');
	   $obj->attr(size => 42);
	   $obj->color('blue');
	   my $color = $obj->color;
	   my $size = $obj->attr('size');

DESCRIPTION
       This module implements some generic methods that	are used by
       Chemistry::Mol, Chemistry::Atom,	Chemistry::Bond, Chemistry::File, etc.

   Common Attributes
       There are some common attributes	that may be found in molecules,	bonds,
       and atoms, such as id, name, and	type. They are all accessed through
       the methods of the same name. For example, to get the id, call
       "$obj->id"; to set the id, call "$obj->id('new_id')".

       id  Objects should have a unique	ID. The	user has the responsibility
	   for uniqueness if he	assigns	ids; otherwise a unique	ID is assigned
	   sequentially.

       name
	   An arbitrary	name for an object. The	name doesn't need to be
	   unique.

       type
	   The interpretation of this attribute	is not specified here, but
	   it's	typically used for bond	orders and atom	types.

       attr
	   A space where the user can store any	kind of	information about the
	   object.  The	accessor method	for attr expects the attribute name as
	   the first parameter,	and (optionally) the new value as the second
	   parameter. It can also take a hash or hashref with several
	   attributes. Examples:

	       $color =	$obj->attr('color');
	       $obj->attr(color	=> 'red');
	       $obj->attr(color	=> 'red', flavor => 'cherry');
	       $obj->attr({color => 'red', flavor => 'cherry'});

OTHER METHODS
       $obj->del_attr($attr_name)
	   Delete an attribute.

       $class->new(name	=> value, name => value...)
	   Generic object constructor. It will automatically call each "name"
	   method with the parameter "value". For example,

	       $bob = Chemistry::Obj->new(name => 'bob', attr => {size => 42});

	   is equivalent to

	       $bob = Chemistry::Obj->new;
	       $bob->name('bob');
	       $bob->attr({size	=> 42});

OPERATOR OVERLOADING
       Chemistry::Obj overloads	a couple of operators for convenience.

       ""  The stringification operator. Stringify an object as	its id.	For
	   example, If an object $obj has the id 'a1', print "$obj" will print
	   'a1'	instead	of something like 'Chemistry::Obj=HASH(0x810bbdc)'. If
	   you really want to get the latter, you can call
	   "overload::StrVal($obj)". See overload for details.

       cmp Compare objects by ID. This automatically overloads "eq", "ne",
	   "lt", "le", "gt", and "ge" as well. For example, "$obj1 eq $obj2"
	   returns true	if both	objects	have the same id, even if they are
	   different objects with different memory addresses. In contrast,
	   "$obj1 == $obj2" will return	true only if $obj1 and $obj2 point to
	   the same object, with the same memory address.

SOURCE CODE REPOSITORY
       <https://github.com/perlmol/Chemistry-Mol>

SEE ALSO
       Chemistry::Atom,	Chemistry::Bond, Chemistry::Mol

AUTHOR
       Ivan Tubert-Brohman <itub@cpan.org>

COPYRIGHT
       Copyright (c) 2005 Ivan Tubert-Brohman. All rights reserved. This
       program is free software; you can redistribute it and/or	modify it
       under the same terms as Perl itself.

perl v5.32.1			  2021-04-09		     Chemistry::Obj(3)

NAME | SYNOPSIS | DESCRIPTION | OTHER METHODS | OPERATOR OVERLOADING | SOURCE CODE REPOSITORY | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Chemistry::Obj&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help