The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


RDF::vCard::Line - represents a line within a vCard


Instances of this class correspond to lines within vCards, though they could potentially be used as basis for other RFC 2425-based formats such as iCalendar.


  • new(%options)

    Returns a new RDF::vCard::Line object.

    The only options worth worrying about are: property (case-insensitive property name), value (arrayref or single string value), type_parameters (hashref of property-related parameters).

    RDF::vCard::Entity overloads stringification, so you can do the following:

      my $line = RDF::vCard::Line->new(
        property        => 'email',
        value           => '',
        type_parameters => { type=>['PREF','INTERNET'] },
      print "$line\n" if $line =~ /internet/i;


  • to_string()

    Formats the line according to RFC 2425 and RFC 2426.

  • add_to_model($model, $node)

    Given an RDF::Trine::Model and an RDF::Trine::Node representing the entity (i.e. vcard) that this line belongs to, adds triples to the model for this line.

  • property()

    Returns the line's property - e.g. "EMAIL".

  • property_node()

    Returns the line's property as an RDF::Trine::Node that can be used as an RDF predicate. Returns undef if a sensible URI cannot be found.

  • property_order()

    Returns a string which can be used to sort a list of lines into a sensible order.

  • value()

    Returns an arrayref for the value. Each item in the arrayref could be a plain scalar, or an arrayref of scalars. For example the arrayref representing this name:


    which is the vCard representation of somebody with surname Smith, given name John and additional names (middle names) Edward and James, might be represented with the following "value" arrayref:

        ['Edward', 'James'],

    or maybe:

        ['Edward', 'James'],

    That's why it's sometimes useful to have a normalised version of it...

  • nvalue()

    Returns a normalised version of the arrayref for the value. It will always be an arrayref of arrayrefs. For example:

        ['Edward', 'James'],
  • value_node()

    Returns the line's value as an RDF::Trine::Node that can be used as an RDF object. For some complex properties (e.g. ADR, GEO, ORG, N, etc) the result is not especially useful.

  • value_to_string()

    Formats the line value according to RFC 2425 and RFC 2426.

  • type_parameters()

    Returns the type_parameters hashref. Here be monsters (kinda).




Toby Inkster <>.


Copyright 2011 Toby Inkster

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.