#!/usr/bin/perl use warnings; use strict; my $desc = 'y'; #'xxYzyyZXzzxYXXyZYYzxZZX'; my $css = ''; my $html = ''; my $initial = { a => 'translateZ(+10px) rotateX(0deg)'; b => 'translateY(-10px) rotateX(90deg)'; c => 'translateZ(-10px) rotateX(180deg)'; d => 'translateY(+10px) rotateX(270deg)'; }; sub div { my ($id,$start,$end) = @_; $id = "$_$start->{$_}$end->{$_}$id" for qw(z y x); $html .= "
$id
"; $css .= < 0, y => 0, z => 0 ); for my $c (split //, $desc) { my $axis = lc $c; my $sign = $c eq $axis ? +1 : -1; my %old = %pos; $pos{$axis} += $sign; divs \%old, \%pos; } print $html;