---
name: "RDF::vCard::Line"
section: "3pm"
platform: "linux"
package: "librdf-vcard-perl"
version: "0.012-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RDF::vCard::Line"
---

# RDF::vCard::Line(3pm)

represents a line within a vCard

## NAME

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

## DESCRIPTION

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.

### Constructor

- •

  `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           => 'joe@example.net',
      type_parameters => { type=>['PREF','INTERNET'] },
      );
    print "$line\n" if $line =~ /internet/i;
  ```

### Methods

- •

  `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:

  ```
    N:Smith;John;Edward,James
  ```

  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:

  ```
    [
      'Smith',
      'John',
      ['Edward', 'James'],
    ]
  ```

  or maybe:

  ```
    [
      ['Smith'],
      'John',
      ['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:

  ```
    [
      ['Smith'],
      ['John'],
      ['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).

## SEE ALSO

RDF::vCard.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

## COPYRIGHT

Copyright 2011 Toby Inkster

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