The wild world of barnacle penises

, 10 August 2024
The wild world of barnacle penises
Barnacles © Barry Yates

A fun way to round up National Marine Week! A fact that is always fun to tell people while leading a rockpooling session is that barnacles have the longest penis in relation to body size in the entire animal kingdom. 

Most barnacles are hermaphrodites, meaning they can act as either males or females. However, they can’t self-fertilise, so they must find other barnacles to reproduce with. As adults, barnacles live permanently glued to hard surfaces unable to move, making it difficult for them to find a mate. To overcome this challenge, they have evolved a penis that can stretch out to find other barnacles to fertilise. These extra long penises are covered in bristles which can detect chemical signals from neighbouring receptive partners. Once found, the penis will stretch out and deposit their sperm into the other barnacle, where fertilised embryos are then held in egg sacs beneath their exoskeleton.

After mating, the penis degenerates and is then re-grown the following summer ready to do it all again.

Environmental factors affect the size and shape of a barnacle penis. It has been found that in calm water, they grow longer, more flexible penises, while in rougher water, they develop stockier, stronger penises to withstand the choppy conditions.

So now you know....

Leave a comment
Time Δ Debug Message - Perch Runway 3.2
1782671526.54090 [906] SELECT p.pagePath, pr.routePattern, pr.routeRegExp, p.pageTemplate, pr.routeOrder, s.settingValue AS siteOffline FROM swt_pages_staging p LEFT JOIN swt_page_routes pr ON p.pageID=pr.pageID LEFT JOIN swt_settings s ON s.settingID='siteOffline' UNION SELECT NULL AS pagePath, pr2.routePattern, pr2.routeRegExp, pr2.templatePath AS pageTemplate, pr2.routeOrder, NULL AS siteOffline FROM swt_page_routes pr2 WHERE templateID!=0 ORDER BY routeOrder ASC, pagePath ASC
1782671526.56860.0277Matched route: news/[slug:s]
1782671526.56880.0001Server address: 216.73.216.31
1782671526.56880Using master page: /templates/pages/blog/post.php
1782671526.56880Page arguments:
Array
(
    [0] => /news/the-wild-world-of-barnacle-penises
    [s] => the-wild-world-of-barnacle-penises
    [1] => the-wild-world-of-barnacle-penises
)
1782671526.56920.0003 [1] SELECT * FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.57010.001 [86] SELECT DISTINCT settingID, settingValue FROM swt_settings WHERE userID=0
1782671526.57210.002 [1] SELECT locationID FROM swt_shop_tax_locations WHERE locationIsHome=1 LIMIT 1
1782671526.57280.0007INSERT INTO swt_shop_cart(memberID,locationID,currencyID,cartPricing,cartProperties) VALUES(NULL,'1',47,'standard','[]')
1782671526.57480.0019 [1] SELECT * FROM swt_shop_cart WHERE cartID=22391647
1782671526.57530.0006 [1] SELECT * FROM swt_shop_cart WHERE cartID=22391647
1782671526.57590.0005 [nil] SELECT * FROM swt_shop_sales WHERE saleFrom<='2026-06-28 18:32:00' AND saleTo>'2026-06-28 18:32:00' AND saleActive=1 AND saleDeleted IS NULL ORDER BY saleOrder ASC
1782671526.57730.0014 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='the-wild-world-of-barnacle-penises')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-28 18:32:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 10
1782671526.58960.0123 [1] SELECT FOUND_ROWS() AS `count`
1782671526.59050.0009 [1] SELECT * FROM swt_blog_posts WHERE postID=3452 AND postStatus='Published' AND postDateTime<='2026-06-28 18:32:00'
1782671526.59140.0009 [13] SELECT * FROM swt_blog_sections ORDER BY sectionTitle ASC
1782671526.5920.0007 [1] SELECT * FROM swt_blogs ORDER BY blogTitle ASC
1782671526.59280.0008 [1] SELECT * FROM swt_categories WHERE catID=44 LIMIT 1
1782671526.59350.0007Using template: /templates/blog/post.html
1782671526.59370.0002 [162] SELECT catID, catPath FROM swt_categories
1782671526.59460.0009 [1] SELECT * FROM swt_blog_posts WHERE postStatus='Published' AND postDateTime<='2026-06-28 18:32:00' AND postSlug='the-wild-world-of-barnacle-penises'
1782671526.64310.0485Using template: /templates/blog/post.html
1782671526.64420.0012 [250] SELECT country, countryID FROM swt_shop_countries WHERE countryActive=1 ORDER BY country ASC
1782671526.64660.0024Using template: /templates/pages/attributes/seo.html
1782671526.64680.0002 [1] SELECT regionID, regionTemplate, regionPage, regionRev AS rev FROM swt_content_regions WHERE regionKey='Banner image' AND (regionPage='/news/post' OR regionPage='*')
1782671526.64780.0009 [nil] SELECT * FROM ( SELECT idx.itemID, c.regionID, idx.pageID, c.itemJSON, idx2.indexValue as sortval FROM swt_content_index idx JOIN swt_content_items c ON idx.itemID=c.itemID AND idx.itemRev=c.itemRev AND idx.regionID=c.regionID JOIN swt_content_index idx2 ON idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev AND idx2.indexKey='_order' WHERE ((idx.regionID=104 AND idx.itemRev=0)) AND idx.itemID=idx2.itemID AND idx.itemRev=idx2.itemRev ) as tbl GROUP BY itemID, pageID, itemJSON, sortval, regionID ORDER BY sortval ASC
1782671526.64960.0018 [82] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageDepth >=0 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782671526.65340.0038 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.65430.001 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782671526.65640.0021Using template: /templates/navigation/ps_nav_template.html
1782671526.65640 [6] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.65720.0007 [4] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.65760.0004 [29] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.66040.0028 [10] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.66140.001 [7] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.66210.0007 [9] Using template: /templates/navigation/ps_nav_template_children.html
1782671526.66480.0027 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' OR pageSortPath='/news/post' LIMIT 1
1782671526.66590.0011 [1] SELECT * FROM swt_pages_staging WHERE pageHidden=0 AND pageNew=0 AND pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition
1782671526.66820.0023 [1] Using template: /templates/navigation/breadcrumbs.html
1782671526.66870.0005Using template: /templates/blog/post.html
1782671526.66890.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782671526.66970.0008Using template: /templates/blog/author.html
1782671526.67010.0004 [1] SELECT SQL_CALC_FOUND_ROWS DISTINCT tbl.* FROM ( SELECT idx.itemID, main.*, idx2.indexValue as sortval FROM swt_blog_index idx JOIN swt_blog_posts main ON idx.itemID=main.postID AND idx.itemKey='postID' JOIN swt_blog_index idx2 ON idx.itemID=idx2.itemID AND idx.itemKey='postID' AND idx2.indexKey='_id' WHERE 1=1 AND ((idx.indexKey='postSlug' AND idx.indexValue='the-wild-world-of-barnacle-penises')) AND idx.itemID=idx2.itemID AND idx.itemKey=idx2.itemKey GROUP BY idx.itemID, idx2.indexValue, postID ) as tbl WHERE (postStatus='Published' AND postDateTime<='2026-06-28 18:32:00' ) GROUP BY itemID, sortval ORDER BY sortval ASC LIMIT 0, 1
1782671526.67270.0027 [1] SELECT FOUND_ROWS() AS `count`
1782671526.67330.0006 [1] Using template: /templates/blog/post.html
1782671526.67690.0036Using template: /templates/blog/comment_form.html
1782671526.67840.0015 [nil] SELECT * FROM swt_blog_comments WHERE 1=1 AND postID=3452 AND commentStatus='LIVE' ORDER BY FIELD(webmentionType, 'like', 'repost', 'comment', NULL) ASC, commentDateTime ASC
1782671526.75860.0802 [0] Using template: /templates/blog/comment.html
1782671526.75880.0002Using template: /templates/blog/post.html
1782671526.7590.0002 [1] SELECT * FROM swt_blog_authors WHERE authorID='1' LIMIT 1
1782671526.75960.0006 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/what-we-do' OR pageSortPath='/what-we-do' LIMIT 1
1782671526.76030.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-002' LIMIT 1
1782671526.76080.0005 [7] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-002%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782671526.7630.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.76340.0004 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782671526.76520.0018 [6] Using template: /templates/navigation/footer-nav.html
1782671526.7660.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782671526.76670.0008 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782671526.76730.0005 [38] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' ORDER BY pageTreePosition ASC
1782671526.76960.0023 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.77010.0005 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782671526.77230.0021 [10] Using template: /templates/navigation/footer-nav.html
1782671526.77550.0032 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/visit' OR pageSortPath='/visit' LIMIT 1
1782671526.77620.0007 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-004' LIMIT 1
1782671526.77680.0006 [30] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-004%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782671526.78150.0047 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.78220.0007 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782671526.78430.0021 [29] Using template: /templates/navigation/footer-nav.html
1782671526.7870.0027 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pagePath='/make-a-difference' OR pageSortPath='/make-a-difference' LIMIT 1
1782671526.78820.0013 [1] SELECT pageID, pageParentID, pageDepth, pageTreePosition FROM swt_pages_staging WHERE pageTreePosition='000-005' LIMIT 1
1782671526.78880.0006 [11] SELECT * FROM swt_pages_staging WHERE pageNew=0 AND pageHidden=0 AND pageTreePosition LIKE '000-005%' AND pageDepth >=1 AND pageDepth<=2 ORDER BY pageTreePosition ASC
1782671526.7910.0022 [1] SELECT pageTreePosition FROM swt_pages_staging WHERE pagePath='/news/post' LIMIT 1
1782671526.79180.0007 [2] SELECT pageID FROM swt_pages_staging WHERE pageTreePosition IN ('000-006-001', '000-006', '000') ORDER BY pageTreePosition DESC
1782671526.79360.0018 [10] Using template: /templates/navigation/footer-nav.html
1782671526.79510.0015Request time: 0.2578
1782671526.79510Process time: 0.2576
1782671526.79510Memory: 1.6218